你們好,我是靈魂畫師--茄子。技術水平通常,喜歡畫畫。spa
開始今天的正題。code
刪除鏈表中等於給定值 val 的全部節點。blog
示例:遞歸
輸入: 1->2->6->3->4->5->6, val = 6rem
輸出: 1->2->3->4->5it
題解:io
1.遞歸解法function
思路:class
let removeElements = function (head, val) { if (head == null) { return head } head.next = removeElements(head.next, val); return head.val === val ? head.next : head; };
2.哨兵解法List
思路:
let removeElements = function (head, val) { let dummyHead = new ListNode(); // 設置哨兵節點 dummyHead.next = head; let pre = dummyHead; // 設置pre let cur = head; // 設置cur while (cur != null) { // 判斷cur是否爲null if (cur.val !== val) { // 值不相同的話,前進pre跟cur pre = cur; cur = cur.next; } else { // 相同,pre.next指向cur.next 3->null pre.next = cur.next; cur = pre.next; } } return dummyHead.next; };
以上就是個人思路以及解法了,但願你們喜歡我畫的圖解,我會繼續努力的ヾ(◍°∇°◍)ノ゙。(點個贊把我帶走吧~~)