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

2021-09-24 17:50:31 字數 1001 閱讀 1426

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

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

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

說明:給定的 n 保證是有效的。

高階:你能嘗試使用一趟掃瞄實現嗎?

第一遍掃瞄,先統計節點的個數。

第二遍掃瞄,定位要刪除的節點。

/**

* definition for singly-linked list.

* struct listnode

* };

*/class solution

if(len == 0 || n > len)

return head;

if(n==len) //如果刪除的是第乙個鍊錶節點

else

first->next = second->next;

delete second;

return head;}}

};

使用兩個指標,快指標先走n個節點,然後慢指標開始移動,當快指標遍歷到鍊錶尾部時,慢指標的下乙個節點就是待刪除的節點。

/**

* definition for singly-linked list.

* struct listnode

* };

*/class solution

while(quick)

listnode * del = slow->next;

slow->next = slow->next->next;

delete del;

head = h->next;

delete h;

return head;

}};

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

給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。示例 給定乙個鍊錶 1 2 3 4 5,和 n 2.當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5.說明 給定的 n 保證是有效的。高階 你能嘗試使用一趟掃瞄實現嗎?說實話,就我的水平而言感覺這道題坑點還真不少,先來我的乙個粗糙版...

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

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

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

給定乙個鍊錶,刪除鍊錶的倒數第n個節點,並且返回鍊錶的頭結點。給定乙個鍊錶 1 2 3 4 5,和 n 2.當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5.給定的n保證是有效的。首先遍歷得出鍊錶的長度l,然後刪除第l n個節點 definition for singly linked list....