1. 程式人生 > >《劍指Offer》題目:鏈表中倒數第k個結點

《劍指Offer》題目:鏈表中倒數第k個結點

倒數 -- 輸出 col ota pan code 輸入 tno

題目描述:輸入一個鏈表,輸出該鏈表中倒數第k個結點

題目分析:因為不能直接從鏈表的尾部遍歷,所以要分兩步走:

第一步:從鏈表的頭部開始遍歷,直至鏈表的尾部,統計出鏈表結點的個數

第二步:根據鏈表結點的個數,計算出倒數第k個結點的位置(從頭部看的位置),即n-k+1個結點,輸出該結點。

Java代碼:

class ListNode {
    int val;
    ListNode next = null;
    ListNode(int val) {
        this.val = val;
    }
}
public class FindKthToTail {
    public
ListNode FindKthToTail(ListNode head,int k) { ListNode listNode = head; if (listNode == null) return null; int temp = 0; while (listNode != null){ listNode = listNode.next; temp++; } if(k>temp) return null; temp = temp - k + 1; ListNode listNode1
= head; while (temp > 1){ listNode1 = listNode1.next; temp--; } return listNode1; } }

《劍指Offer》題目:鏈表中倒數第k個結點