题解 | #链表中倒数第k个结点#

链表中倒数第k个结点

http://www.nowcoder.com/practice/529d3ae5a407492994ad2a246518148a

//两个指针,其中一个指针先走k步,然后两个指针一起走
//还有一道求链表中间结点的题也可以这样做--其中一个指针走两步、另一个走一步
//两道题都需要注意边界,具体问题具体分析


/* public class ListNode {     int val;     ListNode next = null;     ListNode(int val) {         this.val = val;     } }*/ public class Solution {     public ListNode FindKthToTail(ListNode head,int k) {                   //1.设置两个快慢指针         ListNode quickNode = head;         ListNode slowNode = head;                  //2.让quickNode先走k步         while(k!=0){             if(quickNode==null){  //注意防止k步还没走完,就已经走到空的情况--k>链表长度                 return null;             }             quickNode=quickNode.next;  //这一步最边界的位置就是这一步走完后指针为空             //如果循环也正好跳出,说明k的长度为链表长度             k--;         }                  //3.让quickNode和slowNode同时走         while(quickNode!=null){             quickNode=quickNode.next;             slowNode=slowNode.next;         }                  return slowNode;     } }

全部评论

相关推荐

11-08 13:58
门头沟学院 Java
程序员小白条:竟然是蓝桥杯人才doge,还要花钱申领的offer,这么好的公司哪里去找
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务