問題描述:輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。
思路:當鍊表足夠長時,設定兩個結點相距k-1個結點,然後同步向後移動,當後乙個結點走到最後乙個結點時,前乙個結點已經走到倒數第k個結點,返回該結點即可。
import org.junit.test;
public
class
findkthtotail
}public listnode find
(listnode head,
int k)
return
newlistnode
(fast.val);}
int count = k-2;
while
(fast.next!=null&& count>0)
if(fast.next == null)
//結點不足k個
return null;
fast =fast.next;
slow = head;
while
(fast.next!=null)
return slow;
}@test
public
void
test()
listnode result = null;if(
(result=
find
(head,1)
)!= null)
system.out.
println
(result.val)
;else system.out.
println
("null");
}}
輸出鍊錶中倒數第k個結點
題目 輸入乙個單向鍊錶,輸出該鍊錶中倒數第k個結點。鍊錶的倒數第0個結點為鍊錶的尾指標。鍊錶結點定義如下 struct listnode coder lee 20120309 include include using namespace std struct listnode void creat...
輸出鍊錶中倒數第k個結點
鍊錶中倒數第k個結點 題目描述 輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。思路 定義新結點從頭開始遍歷鍊錶,移動 k 次後停止,再定義新的結點指向煉表頭結點,兩個結點同時後移,直至前乙個為 null。注意 鍊錶可能一開始就是空的。如果 k 等於鍊錶長度,如1 2 3,k 3時應該返回原鍊錶1 2 3...
輸出單向鍊錶中倒數第k個結點
描述 輸入乙個單向鍊錶,輸出該鍊錶中倒數第k個結點,鍊錶的倒數第0個結點為鍊錶的尾指標。鍊錶結點定義如下 struct listnode 詳細描述 介面說明 原型 listnode findkthtotail listnode plisthead,unsignedint k 輸入引數 listnod...