203. 移除链表元素

一 题目

二思路

  • 用一个临时节点当头节点前面的结点,这样可以解决头节点就匹配的情况
  • 然后始终锁定前一结点和当前节点,直到当前节点不为空

三代码

public ListNode removeElements(ListNode head, int val) {
        ListNode root=new ListNode();
        root.next=head;
        ListNode pre=root;
        ListNode curr=head;
        while (curr!=null){
            if (curr.val==val){
                //这里直接抛弃当前节点,所以只变动当前新节点,无需变前一个结点
                pre.next=curr.next;
                curr=pre.next;
            }else {
                //更新前一个节点
                pre=curr;
                curr=curr.next;
            }
        }
        return root.next;
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容