锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

剑指 Offer 22. 链表中倒数第k个节点

时间:2022-11-25 10:00:00 风门开闭状态传感器kge22

在这里插入图片描述https://leetcode.cn/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof/

解法一: 顺序遍历

首先统计链表中有多少节点n,然后倒数第k节点是顺数第一n-k 1个节点

class Solution { 
            public ListNode getKthFromEnd(ListNode head, int k) { 
                int n=0;         ListNode cur=head;         while(cur!=null){ 
                    n ;             cur=cur.next;         }         cur=head;         int i=0;         while(i<n-k){ 
                    cur=cur.next;             i ;         }         return cur;     } } //O(n) //O(1) 

解法二:指针快慢

先让快指针先走k步,然后快慢指针一起走。当快指针结束时,慢指针正好到达倒数第k节点

class Solution { 
            public ListNode getKthFromEnd(ListNode head, int k) { 
                ListNode slow=head,fast=head;         int i=0;         while(i<k){ 
                    fast=fast.next;             i ;         }         while(fast!=null){ 
                    fast=fast.next;
            slow=slow.next;
        }
        return slow;
    }
}
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章