java数据结构 -链表 -获取有效节点个数,单链表中倒数k个节点

mac2022-06-30  20

// 1.获取到单链表的节点的个数(如果有头结点,不统计头结点) public static int getLength(HeroNode head){ if (head.next == null){ return 0; } int length = 0; //定义一个辅助变量, HeroNode cur = head.next; while(cur !=null){ length++; cur = cur.next;//遍历 } return length; } //查找单链表中的倒数第K个节点【新浪面试题】 //思路 // 1.编写一个方法,节后head节点,同时接收一个index // 2.index表示倒数第index个节点 // 3.先把链表从头到尾遍历,得到链表的总长度 // 4.得到size后从链表的第一个开始遍历,遍历size-index个就可以得到 // 如果找到了,则返回该节点,否则返回null public static HeroNode fidLastIndexNode(HeroNode head, int index){ //判断如果为空,则返回null if (head.next == null){ return null; } //第一个遍历得到链表的长度(节点个数) //先做一个index的校验 int size = getLength(head); if (index<=0 || index> size){ return null; } //定义辅助变量 HeroNode temp = head.next; //遍历,for循环定位到倒数的index个 for (int i=0; i<size - index; i++){ temp = temp.next; } return temp; }
最新回复(0)