求单链表中有效节点的个数
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个节点
//查找单链表中倒数第k个节点
//思路
//1.编写一个方法,接受head节点,同时接受index
//2.index 表示是倒数第k个节点
//3.先把链表从头到尾遍历,得到链表的总长度GetLength
//4.得到size 后,我们从链表的第一个开始遍历(size-index)个,就可以得到
//5.如果找到了,则返回该节点,否则返回null
public static HeroNode findLastIndexNode(HeroNode head,int index){
//判断如果链表为空,返回null
if(head.next==null){
return null;//没有找到
}
//第一个遍历得到的长度(节点个数)
int size = getLength(head);
//第二次遍历 size - index 位置 ,就是我们倒数的第K个节点
//先做一个index的检验
if(index<=0||index>size){
return null;
}
//定义一个辅助变量,for 循环
HeroNode cur = head.next;
for(int i=0;i<size - index;i++){
cur=cur.next;
}
return cur;
}