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

2021-09-25 19:35:33 字數 964 閱讀 6279

題目要求:

分析:

碰到這種關於鍊錶的題目,條件反射地就想到先要設定乙個啞節點。

條件反射完之後,來看看題目要求我們做什麼。

在這裡,它要求我們刪除掉鍊錶中的某乙個節點,這在資料結構中是一件相當簡單的事情,只要讓node.next = node.next.next就好了,但是,這裡還有乙個前提條件,那就是要刪除該鍊錶的倒數第n個節點。所以我們現在要做的是找到該鍊錶的第n個節點。思路如下:

將該鍊錶遍歷一遍,求出該鍊錶的總長度,記為len;

由於已知n的值,所以我們用len - n來表示新的len值,此時它所指向的就是我們想要刪除節點的前乙個節點。如:

1 -> 2 -> 3 -> 4-> 5,取n = 2,即我們想要刪除鍊錶中值為4的這個節點。

根據第1步,我們可以得到鍊錶總長度len = 5,再根據第2步,我們可以得到len = 5 - 2 = 3.

此時3指向該鍊錶中的第3個節點;

此時,我們令node指向該節點(想要刪除節點的前乙個節點),然後令node.next = node.next.next即可。

具體**如下:

/**

* definition for singly-linked list.

* public class listnode

* }*/class solution

len -= n;

node = dummy;

while(len > 0)

node.next = node.next.next;

return dummy.next;}}

LeetCode 19 鍊錶(160)

1 如圖,鍊錶是一種非常常用的資料結構 煉表頭 指向第乙個鍊錶結點的指標 鍊錶結點 鍊錶中的每乙個元素,包括 1 當前結點的資料,2 下乙個結點的位址 鍊錶尾 不再指向其他結點的結點,其位址部分放乙個null,表示鍊錶到此結束。2 鍊錶可以動態地建立 動態地申請記憶體空間 int pint new ...

鍊錶 LeetCode19刪除鍊錶中的第N個節點

給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。示例 給定乙個鍊錶 1 2 3 4 5,和 n 2.當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5.說明 給定的 n 保證是有效的。高階 你能嘗試使用一趟掃瞄實現嗎?分析 看到這個問題,第一反應,先求長度,再找節點,看一下高階,有...

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

給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。示例 給定乙個鍊錶 1 2 3 4 5,和 n 2.當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5.說明 給定的 n 保證是有效的。高階 你能嘗試使用一趟掃瞄實現嗎?兩次遍歷的演算法思路 第一遍歷從頭結點開始來計算鍊錶的長度,然後...