查找单链表中的倒数第k个节点

    1. //查找单链表中的倒数第k个节点
    2. //思路
    3. //1.编写一个方法,接收head节点,同时接收一个index
    4. //2.index表示是倒数第index个节点
    5. //3.先把链表从头到尾遍历,得到链表的总长度(getLength())
    6. //4.得到size后,我们从链表的第一个开始遍历(size - index)个,就可以得到
    7. //5.如果找到了,返回该节点,否则返回null
    8. public static HeroNode2 findLastIndexNode(HeroNode2 head,int index){
    9. //判断链表是否为空
    10. if (head.next == null){
    11. return null;//空链表
    12. }
    13. //第一次遍历得到链表的长度(节点个数)
    14. int size = getLength(head);
    15. //第二次遍历 size-index 位置,就是我们倒数的第K个节点
    16. //先做一个校验
    17. if (index <= 0 || index > size){
    18. return null;
    19. }
    20. //定义一个辅助变量
    21. HeroNode2 temp = head.next;
    22. for (int i = 0; i < size - index; i++) {
    23. temp = temp.next;
    24. }
    25. return temp;
    26. }