没有合适的资源?快使用搜索试试~ 我知道了~
[力扣] 203.移除链表元素
1 下载量 132 浏览量
2020-12-23
01:00:06
上传
评论
收藏 34KB PDF 举报
温馨提示
试读
1页
移除链表元素 删除链表中等于给定值 val 的所有节点 该题目来自力扣题库 示例 输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2->3->4->5 思路 链表删除元素,先删后面与被删除数字相同的节点(非头节点),之后判断是否要头删。 删非头节点,我们需要找到删除节点的前一个位置(prev),待删除节点是(cur)。最开始prev指向head,cur指向prev.next(也就是head.next),如果达到条件要删除的时候就是把cur.next赋给prev.next,同时不要忘记cur要指向下一个节点。 最后判断头节点是否要被删除,如果要删除,直接头删。 最
资源详情
资源评论
资源推荐
[力扣力扣] 203.移除链表元素移除链表元素
移除链表元素移除链表元素
删除链表中等于给定值删除链表中等于给定值 val 的所有节点的所有节点
该题目来自力扣题库
示例示例
输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5
思路思路
链表删除元素,先删后面与被删除数字相同的节点(非头节点),之后判断是否要头删。
删非头节点,我们需要找到删除节点的前一个位置(prev),待删除节点是(cur)。最开始prev指向head,cur指向
prev.next(也就是head.next),如果达到条件要删除的时候就是把cur.next赋给prev.next,同时不要忘记cur要指向下一个节
点。
最后判断头节点是否要被删除,如果要删除,直接头删。
最后返回head
代码代码
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode removeElements(ListNode head, int val) {
if(head==null){
return null;
}
ListNode prev=head;
ListNode cur=prev.next;
while(cur!=null){
if(cur.val==val){
prev.next=cur.next;
cur=prev.next;
}else{
prev=cur;
cur=cur.next;
}
}
if(head.val==val){
head=head.next;
}
return head;
}
}
总结总结
值得注意的一点是:一定要记得判断是不是空链表。
只要对一个引用进行成员访问操作,那么必须保证有效。引用时不能为空,要不然会抛出异常。只要对一个引用进行成员访问操作,那么必须保证有效。引用时不能为空,要不然会抛出异常。
作者:慶青
weixin_38667920
- 粉丝: 3
- 资源: 909
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0