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

2021-10-12 05:04:57 字數 738 閱讀 9525

解法:雙指標 0ms 36.5mb

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

示例:

給定乙個鍊錶:1-

>2-

>3-

>4-

>

5, 和 n =

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

->2-

>3-

>

5.說明:

給定的 n 保證是有效的。

高階:

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

說明:常規思路是首先遍歷一遍鍊錶統計出鍊錶的長度len,通過(len-n)計算出刪除的節點;這個方法比較簡單,但是需要遍歷兩遍。

說明:單遍歷是遍歷一遍;但是需要開闢額外的空間,即雙指標;先讓front指標往前走n個節點,然後rear和front節點同時往前走,當front節點走完之後,rear指標走到倒數第n個節點;

注意:此處先開闢乙個頭結點pre指向head便於處理短鍊表的情況。

public listnode removenthfromend

(listnode head,

int n)

while

(front != null && front.next != null)

rear.next = rear.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...