这可以说是对单链表的一种巩固吧
问题:
**查找单链表的第N个节点**
/*
* 思路:1.编写一个方法,接受head节点,同时接受index 2.index:表示倒数第index个节点 3.先把链表从头到尾遍历,得到链表的length
* 4.得到size后,我们从链表第一个开始遍历(size-index),就可以得到 5.如果找到,返回该节点,否则返回空
*/
public static HeroNode findLastIndexNode(HeroNode herd, int index) {
// 判断如果链表为空
if (herd.next == null) {
return null;
}
// 第一次遍历得到链表的长度(节点个数)
int size = getLength(herd);
// 第二次遍历 size-index 位置,就是倒数第k个节点
// 先做一个数据的校验
if (index <= 0 || index > size) {
return null;
}
// 定义一个辅助变量
HeroNode cur = herd.next;
for (int i = 0; i < size-index; i++) {
cur = cur.next;
}
return cur;
}
总结:大致思路就是先遍历链表,在遍历的途中让链表的长度-传入的索引值。从而让链表返回倒数第N个值