leecode的初級演算法之刪除鍊錶的倒數第N個節點

2021-10-10 13:09:33 字數 948 閱讀 8660

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

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

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

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

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

變成

還有兩個個難點在於

1、遍歷完了,但是第乙個指標還沒開始走

解決思路在於,遍歷完了還沒開始走,代表被刪除肯定是第乙個,於是刪除第乙個節點即可

2、鍊錶只有乙個

解決思路和上乙個難點很相似,遍歷完了,第乙個指標還沒動。這時判斷n是否等於1,如果等於就代表沒動返回,null即可

/**

* definition for singly-linked list.

* function listnode(val, next)

*//**

* @param head

* @param n

* @return

*/var

removenthfromend

=function

(head, n)

else}if

(num < n)

fir.val = fir.next.val;

//覆蓋fir

fir.next = fir.next.next;

}else

return head;

};

初級演算法之刪除鍊錶中的節

Leecode演算法之棧(簡單)

這裡是引用有效括號字串為空 a 或 a b,其中 a 和 b 都是有效的括號字串,代表字串的連線。例如,和 都是有效的括號字串。如果有效字串 s 非空,且不存在將其拆分為 s a b 的方法,我們稱其為原語 primitive 其中 a 和 b 都是非空有效括號字串。給出乙個非空有效字串 s,考慮將...

Leecode探索之初級演算法 反轉字串

描述 編寫乙個函式,其作用是將輸入的字串反轉過來。輸入字串以字元陣列char的形式給出。不要給另外的陣列分配額外的空間,你必須原地修改輸入陣列 使用 o 1 的額外空間解決這一問題。你可以假設陣列中的所有字元都是 ascii 碼表中的可列印字元。樣例 example 1 輸入 h e l l o 輸...

演算法初級之窮竭搜尋

窮竭搜尋 將所有可能性羅列出來,在其中總能找到乙個答案。1.1遞迴 n n n 1 1.2 棧 後進先出 1.3 佇列 先進先出 1.4 深度優先搜尋dfs 從某個狀態開始,不斷轉移狀態直到無法轉移後回退一步,繼續轉移到其他狀態,不斷重複,知道找到最終解。eg 解數獨 遞迴 問 給定整數a1 a2 ...