[toc]
題目
輸入一個(gè)鏈表,輸出該鏈表中倒數(shù)第k個(gè)節(jié)點(diǎn)。為了符合大多數(shù)人的習(xí)慣,本題從1開始計(jì)數(shù),即鏈表的尾節(jié)點(diǎn)是倒數(shù)第1個(gè)節(jié)點(diǎn)。例如,一個(gè)鏈表有6個(gè)節(jié)點(diǎn),從頭節(jié)點(diǎn)開始,它們的值依次是1、2、3、4、5、6。這個(gè)鏈表的倒數(shù)第3個(gè)節(jié)點(diǎn)是值為4的節(jié)點(diǎn)。
給定一個(gè)鏈表: 1->2->3->4->5, 和 k = 2.
返回鏈表 4->5.
題解
ListNode fast = head;
ListNode slow = head;
if(slow == null) {
return null;
}
int index = 0;
for(;index < k && fast != null; index++) {
fast = fast.next;
}
// 快指針還沒走到k這個(gè)差距
if(index != k) {
return null;
}
while(fast != null) {
fast = fast.next;
slow = slow.next;
}
return slow;