給定乙個鍊錶,刪除鍊錶的倒數第 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 ...