LeetCode 237. 删除链表中的节点
发布日期:2021-07-01 03:13:50 浏览次数:2 分类:技术文章

本文共 809 字,大约阅读时间需要 2 分钟。

文章目录

1. 题目信息

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

示例 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.

说明:

链表至少包含两个节点。

链表中所有节点的值都是唯一的。
给定的节点为非末尾节点并且一定是链表中的一个有效节点。
不要从你的函数中返回任何结果。

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/delete-node-in-a-linked-list
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 只给定了要删除的节点,无法得知上一个的next指针
  • 直接交换要删节点的值与其next存的val
  • 删除其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) {
swap(node->val, node->next->val); node->next = node->next->next; }};

转载地址:https://michael.blog.csdn.net/article/details/100171651 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:LeetCode 206. 反转链表
下一篇:LeetCode 124. 二叉树中的最大路径和(DFS)

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年05月02日 14时41分05秒