《劍指Offer》題目:鏈表中倒數第k個結點
阿新 • • 發佈:2017-06-10
倒數 -- 輸出 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 { publicListNode 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個結點