当前位置:   article > 正文

Leetcode 203.移除链表中的元素_js leetcode 203

js leetcode 203

在这里插入图片描述
链表的题我们如果没思路的话画图就完事了。链表中我们需要关注三个主要的位置,头,尾,和中任意位置
下面我们来画图解释一下。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

我们可以使用双指针来解决这个问题,cur代表当前节点(从head.next开始),prev代表当前节点的前驱(prev=head),(我们先不考虑第一个节点)我们让cur一直往下走,每走一次判断一下当前cur.val是否等于传参传入的value。如果相等的令prev.next=cur.next;(就相当于删除了这个值相等的节点),然后接着走(cur=cur.next),如果不想的的话需要先更新prev的值(prev=cur),再接着走(cur=cur.next),直到全部遍历完结束。到这里我们还有头结点没有判断,我们在判断一下头结点的val是否与传入的val即可

具体代码如下:

class Solution {
    public ListNode removeElements(ListNode head, int val) {
        if(head==null)
        {
            return null;
        }
        ListNode prev=head;
        ListNode cur=head.next;
        while(cur!=null)
        {
              if(cur.val==val)
              {
                  prev.next=cur.next;
                  cur=cur.next;
              }else{               
                  prev=cur;
                  cur=cur.next;
              }
        }
        if(head.val==val)
        {
            head=head.next;
        }
        return head;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/499134
推荐阅读
相关标签
  

闽ICP备14008679号

        
cppcmd=keepalive&