/**
* 鏈表中倒數第K個節點
* <p>
* 遍歷二次的方法:先遍歷一次計算鏈表的長度len,在遍歷一次找到len-k
* 遍歷一次的方法:設置快慢兩個指針,讓快指針先走k步,然後慢指針從頭開始,同時向前走,最後快指針爲空時,慢指針就是目標節點
*
* @param head
* @param k
* @return
*/
public ListNode findKthToTail(ListNode head, int k) {
if (null == head || 0 == k) {
return null;
}
ListNode fast = head;
while (k > 0 && fast != null) {
k--;
fast = fast.next;
}
if (k > 0) {
return null;
}
ListNode slow = head;
while (slow != null && fast != null) {
slow = slow.next;
fast = fast.next;
}
return slow;
}
劍指Offer學習-面試題22:鏈表中倒數第K個節點
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.