欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > 代码随想录算法训练营--打卡day4

代码随想录算法训练营--打卡day4

2025/7/2 20:22:26 来源:https://blog.csdn.net/weixin_65528013/article/details/146716921  浏览:    关键词:代码随想录算法训练营--打卡day4

一.移除链表元素

1.题目链接

203. 移除链表元素 - 力扣(LeetCode)

2.思路

通过 while 循环来遍历链表,只要 cur 的下一个节点不为空,就继续循环。在循环中,对 cur 的下一个节点的值进行判断:

 
  • 值不等于 val 的情况:如果 cur.next.val 不等于 val,说明当前 cur 的下一个节点不需要移除,那么将 cur 指针向后移动一位,即 cur = cur.next,继续检查后续节点。
  • 值等于 val 的情况:如果 cur.next.val 等于 val,说明当前 cur 的下一个节点是需要移除的目标节点。此时,将 cur 的 next 指针直接指向 cur.next.next,这样就跳过了值为 val 的节点,从而将其从链表中移除。在移除节点后,cur 指针不需要移动,因为下一个新的节点还没有被检查,需要继续在当前位置进行判断。

3.代码

class Solution {public ListNode removeElements(ListNode head, int val) {ListNode dummy=new ListNode(0);dummy.next=head;ListNode cur=dummy;while(cur.next!=null){if(cur.next.val!=val){cur=cur.next;}else{cur.next=cur.next.next;}}return dummy.next;}
}

二.反转链表

1.题目链接

206. 反转链表 - 力扣(LeetCode)

3.代码

class Solution {public ListNode reverseList(ListNode head) {ListNode pre=null;ListNode cur=head;while(cur!=null){ListNode cur_next=cur.next;cur.next=pre;pre=cur;cur=cur_next;}return pre;}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词