LeetCode Java刷题笔记—剑指 Offer 22. 链表中倒数第k个节点

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

输入一个链表,输出该链表中倒数第k个节点。

简单难度。使用快慢指针即可,快指针先走k步,然后快慢一起走,直到快指针走到最后一个节点,此时慢指针即指向倒数k个节点了。

public ListNode getKthFromEnd( ListNode head, int k ){
   //快慢指针
   ListNode fast = head, slow = head;
   //快指针先走k
   while( k-- > 0 ){
      fast = fast.next;
   }
   //特殊情况,即
   if( fast == null ){
      return head;
   }
   while( fast != null ){
      fast = fast.next;
      slow = slow.next;
   }
   return slow;
}

你可能感兴趣的:(链表,leetcode,java,链表中倒数第k个节点)