美文网首页
leetcode237 删除节点 非末尾节点

leetcode237 删除节点 非末尾节点

作者: 乔大叶_803e | 来源:发表于2020-02-23 13:59 被阅读0次

经过这两天的思考,发现自己必须从最简单的开始进行刷,要不实在是刷不动

请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。

现有一个链表 -- 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.

首先我们要先明白我们要删除一个节点的话,就是修改之前的节点的指针指向后一节点,并把这个节点删除就行了。


但是在实际中我们无法获知前一个节点,所以我们的做法是把后一节点的值赋给当前节点,然后把当前节点连接到后一节点的next节点上。


只要我们删除的不是末尾节点都是可以这样操作的。

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    void deleteNode(ListNode* node) {
        node->val = node->next->val;
        ListNode* p = node->next;
        node->next = p->next;
        delete p;
    }
};

delete运算符使用一般格式为 delete[]指针变量

例如要撤销用new开辟的存放单精度数的空间(上面第5个例子),应该用   delete p;

delete [] pt;//在指针变量前面加一对方括号,表示是对数组空间的操作

指针删除与堆空间释放。删除一个指针p(delete p;)实际意思是删除了p所指的目标(变量或对象等),释放了它所占的堆空间,而不是删除p本身(指针p本身并没有撤销,它自己仍然存在,该指针所占内存空间并未释放),释放堆空间后,p成了空指针。

相关文章

  • leetcode237 删除节点 非末尾节点

    经过这两天的思考,发现自己必须从最简单的开始进行刷,要不实在是刷不动 请编写一个函数,使其可以删除某个链表中给定的...

  • leetcode探索初级算法之链表

    1. 删除链表中的节点 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。...

  • 2019-01-23 Day 18

    1.删除链表中的节点请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。 现...

  • leetcode的题目237

    237. 删除链表中的节点 请编写一个函数,使其可以删除某个链表中给定的(非末尾的)节点,您将只被给予要求被删除的...

  • Swift 删除链表中的节点 - LeetCode

    题目: 删除链表中的节点 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节...

  • IOS 算法(基础篇) ----- 删除链表中的节点

    请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为 要被删除的节点 。 例子: 输入...

  • 237. 删除链表中的节点

    leetCode地址请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。 现...

  • 1 - Easy - 删除链表的结点

    请编写一个函数,使其可以删除某个链表中给定的(非末尾的)节点,您将只被给予要求被删除的节点。 比如:假设该链表为 ...

  • LeetCodeDay11

    237. 删除链表中的节点 描述 请编写一个函数,使其可以删除某个链表中给定的(非末尾的)节点,您将只被给予要求被...

  • LeetCode 237. 删除链表中的节点

    题目描述 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。 思路 给我们...

网友评论

      本文标题:leetcode237 删除节点 非末尾节点

      本文链接:https://www.haomeiwen.com/subject/ndrjqhtx.html