LeetCode 19 刪除倒數的第N個節點

2021-09-13 01:19:34 字數 810 閱讀 2867

一:題目

二:題目解答

首先我們先想到,既然是要刪除倒數第n個節點。那麼我們先一遍遍歷得到鍊錶的總長度,然後在根據n值,找到要刪除的前乙個節點,進行刪除就可以了。在這裡需要注意的是,為了避免鍊錶只有乙個節點,而這個節點要被刪除的情況,我們建立的指標最好是啞結點的。**如下:

class solution 

system.out.println(i);

int taget = i - n;

listnode answer = new listnode(-1);

answer.next = head;

listnode tmp2 = answer;

for (int j = 0; j < taget; j++)

tmp2.next = tmp2.next.next;

return answer.next;

}

看了答案後。感覺自己演算法很多地方可以優化,先對其進行改進:

class solution 

system.out.print(length);

int target=length-n;

listnode second=tmp;

for(int j=0;j

second.next=second.next.next;//刪除乙個元素

return tmp.next;

}}

leetcode19 刪除倒數第n個節點

def removenthfromend self,head,n 定義兩個指標,表示兩個元素的間隔,間隔大小固定為n 1,兩個指標分別為pre,end pre head end head for in range n end end.next if end is none 需要刪除的節點為第乙個節點...

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

給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。示例 給定乙個鍊錶 1 2 3 4 5,和 n 2.當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5.說明 給定的 n 保證是有效的。高階 你能嘗試使用一趟掃瞄實現嗎?解法 看到這種鍊錶求倒數n的題就想到了用前後指標,類似的題目還有...

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

給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。示例 給定乙個鍊錶 1 2 3 4 5,和 n 2.當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5.說明 給定的 n 保證是有效的。高階 你能嘗試使用一趟掃瞄實現嗎?definition for singly linked lis...