給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。
示例:給定乙個鍊錶: 1->2->3->4->5, 和 n = 2.
當刪除了倒數第二個節點後,鍊錶變為 1->2->3->5.
說明:給定的 n 保證是有效的。
高階:你能嘗試使用一趟掃瞄實現嗎?
//思路:採用乙個啞節點作為首節點,讓啞節點.next = head,然後雙指標指向啞節點,fast指標先走n+1步,然後和慢指標slow一塊走,當fast走到null的時候,慢指標slow正好走到倒數第n個節點的前乙個節點,讓slow.next=slow.next.next,最後返回啞節點.next
* definition for singly-linked list.
* public class listnode
class solution {
public listnode removenthfromend(listnode head, int n) {
listnode pre = new listnode(integer.max_value);
pre.next = head;
listnode fast = pre;
listnode slow = pre;
for(int i = 0; i <= n; i++){
if(fast==null){
return pre.next;
fast = fast.next;
while(fast!=null){
fast = fast.next;
slow = slow.next;
slow.next = slow.next.next;
return pre.next;
刪除鍊錶倒數第N個節點
1.問題 給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。示例 給定乙個鍊錶 1 2 3 4 5,和 n 2.當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5.2.演算法 暴力破解法 先計算得出鍊錶的長度m,然後將鍊錶長度和所給倒數字置相減,即loc m n 1,得出刪除節點的前...
刪除鍊錶倒數第n個節點
leetcode 題目 給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。給定乙個鍊錶 1 2 3 4 5,和 n 2.當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5.note n 鍊錶長度時,刪除頭節點 n 0時,不做任何操作。當第乙個指標first 比第二個指標領先n步,然後...
刪除鍊錶的倒數第N個節點
與查詢鍊錶的倒數第n個節點對比只改動了一行 查到倒數第n個節點後,將該節點的後續指標p1.next p1.next.next 即可 package 鍊錶中 public class nthnodefromendoflist return m 刪除倒數第n個節點 param args public s...