LeetCode–删除链表的节点
博客说明
文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!
介绍
题目
给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。
返回删除后的链表的头节点。
示例 1:
1 | 输入: head = [4,5,1,9], val = 5 |
示例 2:
1 | 输入: head = [4,5,1,9], val = 1 |
说明:
1 | 题目保证链表中节点的值互不相同 |
思路
- 特例处理: 当应删除头节点 head 时,直接返回 head.next 即可。
- 初始化: pre = head , cur = head.next 。
- 定位节点: 当 cur 为空 或 cur 节点值等于 val 时跳出。
- 保存当前节点索引,即 pre = cur 。
- 遍历下一节点,即 cur = cur.next 。
- 删除节点: 若 cur 指向某节点,则执行 pre.next = cur.next 。(若 cur 指向 nullnull ,代表链表中不包含值为 val 的节点。
- 返回值: 返回链表头部节点 head 即可。
代码
1 | /** |
感谢
Leetcode