代码随想录复习 203 移除链表元素

该代码示例展示了如何在Go中创建一个辅助虚拟节点,遍历单链表并移除值等于给定值的所有节点。通过检查每个节点的下一个节点的值,当找到目标值时,跳过目标节点,从而实现链表的修改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码如下 

/**

 * Definition for singly-linked list.

 * type ListNode struct {

 *     Val int

 *     Next *ListNode

 * }

 */

func removeElements(head *ListNode, val int) *ListNode {

             prehead := &ListNode{}   //设置一个虚拟头结点 

        

             prehead.Next = head      //虚拟头结点指向头结点 

             cur := prehead   //设置遍历指针

             for cur != nil && cur.Next != nil  { //遍历的终止条件,如果当前节点为空,或者当前节点为尾结点 

                 if cur.Next.Val == val {  //如果下一个节点的值等于目标值,则需要删除下一个节点,下一个节点则为删除的目标节点。

                    cur.Next = cur.Next.Next  //所以需要将目标节点指向的下一个节点的指针赋给当前指针指向目标节点的指针 

                 }else {

                     cur = cur.Next //如果不是目标值,节点向后移动  

                 }

             }

             newhead := prehead.Next 

             return newhead 

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值