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

链表中倒数第k个结点

http://www.nowcoder.com/practice/886370fe658f41b498d40fb34ae76ff9

  • 思路1
    第一遍遍历计算链表的长度,计算出倒数第k个节点的索引值idx = length-k,再从头寻找第idx个节点。

    public ListNode FindKthToTail (ListNode pHead, int k) {
          // write code here
          if(k <0) return null;
          int listLength = 0;
          ListNode ptr = pHead;
          while(ptr!=null){
              ++listLength;
              ptr = ptr.next;
          }
          int idx = listLength-k;
          if(idx<0) return null;
          for(int i = 0;i <idx; ++i){
              pHead = pHead.next;
          }
          return pHead;
      }
  • 思路2
    设置快指针和慢指针,快指针先走k步后,快指针和慢指针一起走,快指针到尾结点后,慢指针所在的节点即目标节点

全部评论

相关推荐

offer多多的六边形战士很无语:看了你的博客,感觉挺不错的,可以把你的访问量和粉丝数在简历里提一下,闪光点(仅个人意见)
点赞 评论 收藏
分享
10-09 00:50
已编辑
长江大学 算法工程师
不期而遇的夏天:1.同学你面试评价不错,概率很大,请耐心等待;2.你的排名比较靠前,不要担心,耐心等待;3.问题不大,正在审批,不要着急签其他公司,等等我们!4.预计9月中下旬,安心过节;5.下周会有结果,请耐心等待下;6.可能国庆节前后,一有结果我马上通知你;7.预计10月中旬,再坚持一下;8.正在走流程,就这两天了;9.同学,结果我也不知道,你如果查到了也告诉我一声;10.同学你出线不明朗,建议签其他公司保底!11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务