[劍指offer] --14.連結串列中倒數第k個結點
阿新 • • 發佈:2018-11-05
題目描述
輸入一個連結串列,輸出該連結串列中倒數第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) {
}
}
解題思路
- 兩個指標,先讓第一個指標和第二個指標都指向頭結點,然後再讓第一個指正走(k-1)步,
- 到達第k個節點之後,兩個指標同時往後移動,
- 當第一個結點到達末尾的時候,第二個結點所在位置就是倒數第k個節點了
public class Solution15 { public ListNode FindKthToTail(ListNode head,int k) { if (head==null||k==0){ return null; } ListNode pre = head; ListNode behind = head; for (int i=1;i<k;i++){ if (pre.next!= null) { pre = pre.next; } else { return null; } } while (pre.next!=null){ pre = pre.next; behind = behind.next; } return behind; } public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } }