本地Windows上安裝 MySQL資料庫
阿新 • • 發佈:2020-12-17
技術標籤:程式設計之美
**題目:**輸入一個連結串列,輸出該連結串列中倒數第k個節點。為了符合大多數人的習慣,本題從1開始計數,即連結串列的尾節點是倒數第1個節點。例如,一個連結串列有6個節點,從頭節點開始,它們的值依次是1、2、3、4、5、6。這個連結串列的倒數第3個節點是值為4的節點。
示例:
給定一個連結串列: 1->2->3->4->5, 和 k = 2.
返回連結串列 4->5.
解題思路: 快慢指標,先讓快指標先走k-1步,然後快慢指標一起走,之後快指標一直比慢指標快k- 1步,當快指標到最後一個節點時,慢指標指向的就是第K個節點。
例如:1->2->3 k=3
public class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
class Solution {
public ListNode getKthFromEnd(ListNode head, int k) {
//快慢指標
ListNode s = head;
ListNode f = head;
for(int i = 0;i < k-1;i++){
f = f.next;
}
while(f.next != null){
f = f.next;
s = s.next;
}
return s;
}
}