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

链表中倒数最后k个结点

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

此题难度太小,但有很多可以使用的简单办法,看完感到自己的方法可以再进步,特此分享

  public ListNode FindKthToTail(ListNode pHead, int k) {
        int n = len(pHead);
        if (n < k) {
            return null;
        }
        ListNode cur=pHead;
        int m=n-k;
        while (m!=0) {
            cur=cur.next;
            m--;
        }
      return cur;
    }
    public int len(ListNode head) {
        ListNode cur = head;
        int count = 0;
        if (cur==null) {
            return 0;
        }
       while (cur!=null){
           cur=cur.next;
           count++;
       }
       return count;
    }
}
此方法为自己的土方法,还有思路更简单的方法如下:

class Solution:
    def FindKthToTail(self , pHead , k ):
        # write code here
        # 快慢指针
        fast = pHead
        slow = pHead
        # 快指针先走k步
        for i in range(0, k):
            if not fast:
                return None
            fast = fast.next
        # 双指针同时行走
        while fast:
            fast = fast.next
            slow = slow.next
        return slow

运用快慢指针,让快指针先走k步,再让慢指针跟上。

如上


全部评论

相关推荐

rbjjj:太杂了吧,同学,项目似乎都没深度,都是api调度耶,分层架构思想没有体现出来了,前端没有前端优化前端工程化体现,后端微服务以及分层架构没体现以及数据安全也没体现,核心再改改,注重于计算机网络,工程化,底层原理吧
点赞 评论 收藏
分享
10-29 18:20
济南大学 Java
用微笑面对困难:他不是人事吗,怎么净特么不干人事
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务