• leetcode腾讯精选练习之删除链表中的结点(七)


    删除链表中的结点

    题目:

    请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。
    现有一个链表 -- head = [4,5,1,9],它可以表示为:
    示例 1:
    输入: head = [4,5,1,9], node = 5
    输出: [4,1,9]
    解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.
    示例 2:
    输入: head = [4,5,1,9], node = 1
    输出: [4,5,9]
    解释: 给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -> 5 -> 9.

    思路:

    1.将当前结点的下一个结点的值赋值给当前结点。
    2.将下一个结点赋值给临时指针
    3.将当前结点的下一个结点的下一个结点赋值给当前结点的下一个结点
    4.删除当前结点的下一个结点

    代码:

    void deleteNode(ListNode* node) {
        node->val = node->next->val;
        ListNode* temp = node->next;
        node->next = node->next->next;
        delete temp;
    }
    

    总结:

    基本的链表删除结点操作

  • 相关阅读:
    梦幻如初,心不忘。
    整数集和求并
    ACTF 2014 Write up
    适用web的图片
    jqGrid
    angularjs
    【转载】FPGA异步时钟设计中的同步策略
    Cordic的学习之硬件实现
    Cordic的学习初步
    DDS---三角函数发生器的用法
  • 原文地址:https://www.cnblogs.com/zh20130424/p/12221272.html
Copyright © 2020-2023  润新知