zoukankan      html  css  js  c++  java
  • 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;
    }
    

    总结:

    基本的链表删除结点操作

  • 相关阅读:
    mtu
    OC2_使用系统协议
    OC1_协议语句
    Json文件/网址解析
    文件归档
    Plist文件
    NS-Date/NSDateFormatter
    OC10_文件练习
    OC9_文件操作
    OC8_NSData
  • 原文地址:https://www.cnblogs.com/zh20130424/p/12221272.html
Copyright © 2011-2022 走看看