首页
学习
活动
专区
圈层
工具
发布

删除链表中的节点

题目描述 难度级别:简单 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为 要被删除的节点 。...,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9....示例 2: 输入:head = [4,5,1,9], node = 1 输出:[4,5,9] 解释:给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -> 5 -> 9....提示: 链表至少包含两个节点。 链表中所有节点的值都是唯一的。 给定的节点为非末尾节点并且一定是链表中的一个有效节点。 不要从你的函数中返回任何结果。...解题思路 题目中待传递给当前函数的实参node,它是链表中的某一个待删除的节点,然后从链表中删除这个节点。

3.2K00
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Leetcode -147.对链表进行插入排序 -237.删除链表中的节点】

    Leetcode -147.对链表进行插入排序 题目: 给定单个链表的头 head ,使用 插入排序 对链表进行排序,并返回 排序后链表的头 。...插入排序 算法的步骤 : 插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。...每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。 重复直到所有输入数据插入完为止。...给你一个需要删除的节点 node 。你将 无法访问 第一个节点 head。 链表的所有值都是 唯一的,并且保证给定的节点 node 不是链表中的最后一个节点。 删除给定的节点。...注意,删除节点并不是指从内存中删除它。这里的意思是: 给定节点的值不应该存在于链表中。 链表中的节点数应该减少 1。 node 前面的所有值顺序相同。 node 后面的所有值顺序相同。

    40810

    删除链表中的重复节点.

    前言 在一个排序的链表中,存在重复的节点,如何删除链表中重复的节点并返回删除后的链表头指针?例如:1->2->3->3->4->4->5,处理后为: 1->2->5。...本文将分享这个问题的解决思路与实现代码,欢迎各位感兴趣的开发者阅读本文。 常规思路 根据题意,我们可以知道链表中的元素是排好序的。如果节点重复的话,当前节点一定与下一个节点相同。...其次,我们需要创建两个指针: 一个指向当前不重复的节点,我们将它命名为pre 一个为搜索指针,用于搜索链表中与当前节点不重复的节点,我们将它命名为last 随后,我们为 pre 与 last 进行初始赋值...20220226224625702 实现代码 接下来,我们将上述思路转换为代码,如下所示: /** * 删除链表中的重复节点 * @param pHead 链表头节点 */ deleteDuplicatesNode...* * 删除链表中的重复节点(递归解法) * @param pHead 链表头节点 */ deleteDuplicatesNodeForRecursion(pHead: ListNode

    3.5K40

    237 删除链表中的节点

    01 题目信息 题目地址: https://leetcode-cn.com/problems/delete-node-in-a-linked-list/ 请编写一个函数,使其可以删除某个链表中给定的(非末尾...示例 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....提示: 链表至少包含两个节点。 链表中所有节点的值都是唯一的。 给定的节点为非末尾节点并且一定是链表中的一个有效节点。 不要从你的函数中返回任何结果。...因为一个节点的信息只有自己的值以及下个节点。所以传入一个节点是看不到整个链表的。也就是说我们只能拿到部分链就是传入的节点之后的5--->1--->9。

    1.6K10

    2 删除链表中的节点

    复习链表的插入 链表的一个节点是由数据域和指针域构成,指针域的地址值为下个元素的地址。那么我们需要插入或者删除一个元素怎么处理呢? ? 先查看原始链表结构,准备将结点x插入链表中。 ?...复习链表的删除 上面简单介绍了带头结点的链表,在删除处理的时候同样适用,所以我们以后就直接采用带头结点的链表讲解。下面直接看看删除节点图。 ?...1 Leetcode237 删除链表的节点 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。...示例1: 输入: head = [4,5,1,9], node = 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9...说明: 链表至少包含两个节点。 链表中所有节点的值都是唯一的。 给定的节点为非末尾节点并且一定是链表中的一个有效节点。 不要从你的函数中返回任何结果。 先思考一分钟哟! 效果更好哈!

    1.7K20

    leetcode - 交换链表中的节点

    题意 给你链表的头节点 head 和一个整数 k 。 交换 链表正数第 k 个节点和倒数第 k 个节点的值后,返回链表的头节点(链表 从 1 开始索引)。 示例 示例 1: ?...k = 1 输出:[1] 示例 4: 输入:head = [1,2], k = 1 输出:[2,1] 示例 5: 输入:head = [1,2,3], k = 2 输出:[1,2,3] 提示 链表中节点的数目是...个节点,第 k 个节点的 next 节点指向倒数第 k 个节点的 next 节点。...就是我把所以的 val 值取出来转数组,在 js 中,单纯的同类型数组,它在内存中是连续的,所以其访问复杂度是 O(1),所以我们把生成的数组的第(k - 1)个 和 数组的长度减去 k 的那位交换。...最后我们构造一个新的链表返回,当然啦,后面笔者比较菜用了两次遍历去构造这个链表然后返回。

    91620

    删除有序链表中的重复元素

    题目: 思路: 思路一:由于是有序的链表,所以按一定的顺序,例如从小到大,这样的话,将第一个A节点的值存于一个变量temp之中,设第一个节点为A(head),第二个节点为B(head.next),第三个节点为...C(head.next.next),这样如果B的值与A相同,则就是要去掉的,即head.next=head.next.next ,第二节点的位置由第三个的值覆盖。...思路三:如果这个有序的链表变为了无序的呢,那么明显不能只用一个变量来进行存储,这时候我们可以用set集合来进行处理,这样不管是有序还是无序其实问题都不大,但是对于这种我们又该如何减少开销,再次提高性能。...            return head;         Set set = new HashSet();        //使用set集合,这样用于判断元素是否已经存在于集合中,且不会存储重复的值...next_temp = next_temp.next;             }         }         return head;     }     /**      * 仅当是当前为有序链表

    1.4K30

    Swift 删除链表中的节点 - LeetCode

    LeetCode 题目: 删除链表中的节点 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。...现有一个链表 -- head = 4,5,1,9,它可以表示为: 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.6K40

    【Leetcode】移除链表元素 链表的中间节点 链表中倒数第k个节点

    next; cur=pre->next; } } } return head; } B.类尾删法 1.创建一个新的指针...newhead ,同时为了省去找尾的麻烦,我们可以定义一个尾指针 tail 来保存尾节点; 2.再创建一个指针 cur =head ,用来遍历链表; 3.如果 cur->val !...【Leetcode876】链表的中间节点 1.链接:链表的中间节点 2.题目再现 3.解法:快慢指针 1.定义一个快指针 fast 和一个慢指针 slow 都初始化为 head; 2.遍历链表,快指针一次走...next; //fast 走2步 } slow=slow->next; //slow 走1步 } return slow; //返回慢指针 } 三.链表中倒数第...k个节点 1.链接:链表中倒数第k个节点 2.题目再现 3.解法 :快慢指针 1.定义一个快指针 fast 和一个慢指针 slow 都初始化为 head; 2.因为倒数第k个节点和尾节点的差为 k-

    24110
    领券