当前位置:网站首页>[Offer18]删除链表的节点
[Offer18]删除链表的节点
2022-07-06 09:17:00 【劲腰傩舞】
问题
给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。
返回删除后的链表的头节点。
注意:此题对比原题有改动
示例 1:
输入: head = [4,5,1,9], val = 5
输出: [4,1,9]
解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.
示例 2:
输入: head = [4,5,1,9], val = 1
输出: [4,5,9]
解释: 给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -> 5 -> 9.
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/shan-chu-lian-biao-de-jie-dian-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution {
public:
/*返回链表的头指针,要么使用头结点->next实现,要么动态维护头指针。代码选择了第二种*/
ListNode* deleteNode(ListNode* head, int val) {
/*遍历该链表的一个指针*/
ListNode* current = head;
/*删除一个结点的本质是找到其前驱。*/
ListNode* prior = head;
/*没有指定链表的长度。那就一直循环。*/
while (1) {
/*找到结点的情况下*/
if (current->val == val) {
/*上来就直接找到了目标,第一个结点没有前驱。需要特殊处理*/
if (current == head) {
/*第一意识居然是head++,废了*/
head = head->next;
return head;
}
else {
prior->next = current->next;
return head;
}
}
/*没有找到的话,备份一下当前结点*/
prior = current;
current = current->next;
}
}
};
边栏推荐
猜你喜欢
arduino UNO R3的寄存器写法(1)-----引脚电平状态变化
Basic operations of databases and tables ----- modifying data tables
Understanding of AMBA, AHB, APB and Axi
(五)R语言入门生物信息学——ORF和序列分析
MySQL时间、时区、自动填充0的问题
I2C bus timing explanation
JS variable types and common type conversions
E-commerce data analysis -- salary prediction (linear regression)
A possible cause and solution of "stuck" main thread of RT thread
ES6 grammar summary -- Part 2 (advanced part es6~es11)
随机推荐
The dolphin scheduler remotely executes shell scripts through the expect command
Mysqldump error1066 error solution
小天才电话手表 Z3工作原理
Time slice polling scheduling of RT thread threads
Arduino uno R3 register writing method (1) -- pin level state change
JS变量类型以及常用类型转换
Unit test - unittest framework
Imgcat usage experience
gcc 编译选项
@The difference between Autowired and @resource
JS object and event learning notes
Common DOS commands
Rough analysis of map file
Talking about the startup of Oracle Database
open-mmlab labelImg mmdetection
Common properties of location
open-mmlab labelImg mmdetection
arduino UNO R3的寄存器写法(1)-----引脚电平状态变化
Bubble sort [C language]
Priority inversion and deadlock