LeetCode 019 刪除鍊錶的倒數第N個節點

2021-09-17 01:38:20 字數 565 閱讀 4857

019 刪除鍊錶的倒數第n個節點

給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。

示例:給定乙個鍊錶: 1->2->3->4->5, 和 n = 2.

當刪除了倒數第二個節點後,鍊錶變為 1->2->3->5.

方法:雙指標法

思路:定義兩個指標指向頭節點,將第乙個指標移動n個節點,然後兩個一起移動,直到第乙個指標為null停止,則第二個指標指的位置就是倒數第n個位置(因為求出鍊錶的長度是很難的,這樣比較方便)

**:

public static class listnode 

}public static listnode removenthfromend(listnode head, int n)

if(p==null)

while(p.next!=null)

q.next=q.next.next;

return head;

}public static void main(string args)

}

注意:main函式裡的鍊錶的初始化和遍歷的方法

LeetCode 019 刪除鍊錶的倒數第N個節點

這是乙個中等難度的問題在王道考研教材中也有提及,但是時間過得過於久遠,思路已經模糊不清了,這裡設定了乙個頭節點,將刪除首元素以及其他元素的操作統一了起來,使用了雙指標的技巧,解決該問題。definition for singly linked list.class listnode def init...

LeetCode 019 刪除鍊錶的倒數第N個節點

給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點 用兩個指標,其中乙個先 走 先走的指標先走n步 然後兩個指標再同時走,當先走的指標指向最後乙個節點時,後走的指標指向要刪除的節點的上乙個節點 注意 如果先走的指標走完n步後已經為null,則說明要刪除的是頭節點 definition ...

019 刪除鍊錶的倒數第N個節點

1 使用兩次遍歷 2 listnode removenthfromend listnode head,int n 10 11 p head 12if len n 13return head next 14for int j 0 j len n 1 j 1718 p next p next next ...