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;
19return
head;20}
2122
//使用單次遍歷,先使p移動n+1個位子,即剩下還有(len-n-1)個位子,對應面上面的j迴圈
23//
然後將q從頭移動,並同時p向後移動,從而可知q的位置就是倒數第n個位置
24 listnode* removenthfromend(listnode* head, int
n) 34 q->next = q->next->next;
35return
head;
36 }
刪除鍊錶倒數第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步,然後...
力扣日記 019 刪除鍊錶的倒數第n個節點
給定乙個鍊錶,刪除鍊錶的倒數第 n 個節點,並且返回鍊錶的頭結點。示例 給定乙個鍊錶 1 2 3 4 5,和 n 2.當刪除了倒數第二個節點後,鍊錶變為 1 2 3 5.說明 給定的 n 保證是有效的。高階 你能嘗試使用一趟掃瞄實現嗎?1 獲得表頭,通過迴圈遍歷鍊錶,建立乙個容器將節點儲存。2 要刪...