劍指offer之連結串列中倒數第K個結點
阿新 • • 發佈:2018-12-13
連結串列中倒數第K個結點
輸入一個連結串列,輸出該連結串列中倒數第k個結點。
思路:使用兩個指標,先讓第一個指標和第二個指標都指向頭結點,然後再讓第一個指正走(k-1)步,到達第k個節點
然後兩個指標同時往後移動,當第一個結點到達末尾的時候,第二個結點所在位置就是倒數第k個節點了。。
/** * public class ListNode { * int val; * ListNode next = null; * * ListNode(int val) { * this.val = val; * } * } * */ public class Solution{ public ListNode FindKthToTail(ListNode head,int k){ if(head == null || k <= 0){ return null; } ListNode pre = head; ListNode last = head; for (int i = 0;i < k; i++) { if (pre.next != null) { pre = pre.next; } else{ return null; } } while(pre.next != null){ pre = pre.next; last = last.next; } return last; } }