美文网首页
leetcode的题目237

leetcode的题目237

作者: 二木二三水 | 来源:发表于2018-05-23 22:03 被阅读0次

237. 删除链表中的节点

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

比如:假设该链表为 1 -> 2 -> 3 -> 4  ,给定您的为该链表中值为 3 的第三个节点,那么在调用了您的函数之后,该链表则应变成 1 -> 2 -> 4 。

/**

* 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=node->next->next;

        delete(p);

    }

};

主要思路:链表的节点中包含两项,一项是值,一项是指向下一个节点的指针。当前题目中,只给你一个节点,让你删除该节点,(删除节点的方法:1、找到当先节点的前一节点,使前一节点的指针直接指向当前节点的下一节点;2、将当前节点的下一节点的值复制到当前节点的值,将当前节点的下一节点的指针复制到当前节点的指针,例:node->val=node->next->val;  node->next=node->next->next;),根据题目所示,由于不能获取前一节点,所以使用第二种方法。由于下一节点已经全部复制到当前节点,所以下一节点已经无作用,进行删除可以释放内存。

相关文章

  • leetcode的题目237

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

  • Algorithm LeetCode 237 + LeetCod

    Algorithm 第五周 LeetCode 237. 删除链表中的节点 题目链接 解题语言 : C 请编写一个函...

  • 237 删除链表中的节点

    【237】删除链表中的节点 LeetCode题目 + 别人的思路 说明:链表至少包含两个节点。链表中所有节点的值都...

  • LeetCode 链表专题 5:不仅仅是穿针引线

    例:LeetCode 第 237 题:删除链表中的结点 传送门:英文网址:237. Delete Node in ...

  • Linked Lists

    花2天把Leetcode上Linked lists的题目刷完了,下面是一些我觉得比较有倾诉欲望的题。 237. D...

  • 删除链表结点-替身法 2020-09-18(未允禁转)

    leetcode 237. 删除链表中的节点 Write a function to delete a node ...

  • leetcode 237

    这道题和以往的删除节点不同,这次记住要删除节点的val,覆盖给留下的节点。图片.png 注意:因为C++有指针,你...

  • ARTS 第1周

    ARTS 第1周分享 Algorithm LeetCode 237 Delete Node in a Linked...

  • LeetCode 477 Total Hamming Dista

    LeetCode 排列组合 题目汇总LeetCode 数字 题目汇总LeetCode 动态规划 题目分类汇总干货!...

  • LeetCode 473 Matchsticks to Squa

    LeetCode 排列组合 题目汇总LeetCode 数字 题目汇总LeetCode 动态规划 题目分类汇总干货!...

网友评论

      本文标题:leetcode的题目237

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