• 剑指 Offer 18. 删除链表的节点(简单)


    通过率 59.5%

    题目链接

    题目描述:

    给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。

    返回删除后的链表的头节点。

    注意:此题对比原题有改动

    示例 1:

    输入: head = [4,5,1,9], val = 5
    输出: [4,1,9]
    解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.

    示例 2:

    输入: head = [4,5,1,9], val = 1
    输出: [4,5,9]
    解释: 给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -> 5 -> 9.

    说明:

    题目保证链表中节点的值互不相同
    若使用 C 或 C++ 语言,你不需要 free 或 delete 被删除的节点

    思路:

    先判断头节点是否为要删除的节点,若是,则直接返回head.next;否则,遍历链表找到要删除的节点,一旦找到某个节点的值等于val,说明该节点就是要删除的节点,则令该节点前一个节点的next指向该节点的next就行了

     1 /*JavaScript*/
     2 /**
     3  * Definition for singly-linked list.
     4  * function ListNode(val) {
     5  *     this.val = val;
     6  *     this.next = null;
     7  * }
     8  */
     9 /**
    10  * @param {ListNode} head
    11  * @param {number} val
    12  * @return {ListNode}
    13  */
    14 var deleteNode = function(head, val) {
    15     if(head.val === val) {
    16         return head.next
    17     }
    18     let p = head
    19     while(p.next && p.next.val !== val) {
    20         p = p.next
    21     }
    22     p.next = p.next.next
    23     return head
    24 };
  • 相关阅读:
    利用iframe实现ajax 跨域通信的解决方案
    C++中事件机制的简洁实现
    java远程类加载与轻客户端
    iOS开发那些事性能优化–内存泄露问题的解决
    Asp.net项目的开发流程
    LVS配置教程
    PowerShell之东扯西谈
    响应式设计专题
    2013年最值得关注的网页设计流行趋势
    HTTP Live Streaming直播技术分析与实现
  • 原文地址:https://www.cnblogs.com/wwqzbl/p/15203400.html
Copyright © 2020-2023  润新知