GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — 删除链表的节点-面试题18 · Issue #40 · sl1673495/leetcode-javascript Open Labels Description面试题 18.删除链表的节点 返回删除后的链表的头节点。 注意:此题对比原题有改动 说明: 题目保证链表中节点的值互不相同 思路这题循环体里的代码还是很好定义的,不断的判断 cur.next.val 是否等于目标值 val,如果等于的话,就把 cur.next 直接赋值为 cur.next.next 即可。 但是问题就在于,这个逻辑对于头部节点是不适用的,因为是直接判断 next,所以这种题目有个通用的思路就是建立一个虚拟节点 virtual node 来替换头部位置,这样就可以轻松解决此题。 /** * Definition for singly-linked list. * function ListNode(val) { * this.val = val; * this.next = null; * } */ /** * @param {ListNode} head * @param {number} val * @return {ListNode} */ var deleteNode = function (head, val) { let virtual = { next: head, } let cur = virtual while (cur) { if (cur.next) { if (cur.next.val === val) { cur.next = cur.next.next } } cur = cur.next } return virtual.next } ActivityMetadataMetadataAssigneesLabelsProjectsMilestoneRelationshipsDevelopmentIssue actions |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |