当前位置:   article > 正文

leetcode203. 移除链表元素

leetcode203. 移除链表元素

 题目描述:

这题是单链表中最基本操作了,直接上代码:

  1. type ListNode struct {
  2. Val int
  3. Next *ListNode
  4. }
  5. func removeElements(head *ListNode, val int) *ListNode {
  6. virHead := new(ListNode) //创建一个虚拟头结点
  7. virHead.Next = head //使虚拟头结点连接到给的链表头结点前,这样可以统一对头节点和其他结点的操作不用把头节点单独拎出来操作
  8. cur := head //用来遍历的结点
  9. pre := virHead //遍历结点的前一个结点,方便后续操作
  10. for cur != nil { //直到最后一个结点
  11. if cur.Val == val {
  12. pre.Next = cur.Next //断开与待删除结点的连接
  13. cur = cur.Next //遍历下一个结点
  14. } else { //如果不是待删除结点,就都往下走
  15. pre = pre.Next
  16. cur = cur.Next
  17. }
  18. }
  19. return virHead.Next //返回虚拟头节点的下一个结点
  20. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/850491
推荐阅读
相关标签
  

闽ICP备14008679号