zoukankan      html  css  js  c++  java
  • 力扣203题(移除链表元素)

     203、移除链表元素

     具体实现:

    如果头结点是要删除的元素选择两种方式

    1、直接使用原来的链表进行删除操作

    2、设置一个虚拟头结点再进行删除操作

    代码:

     1、不设置虚拟结点

    class Solution {
        public ListNode removeElements(ListNode head, int val) {
            while (head != null && head.val == val){//如果头结点是要删除的值,就让头结点指向下一个节点
                head = head.next;
            }
            if (head == null){
                return head;
            }
             ListNode pre = head;
             ListNode cur = head.next;
             while (cur != null) {
                if (cur.val == val){
                    pre.next = cur.next;
                }
                else{
                    pre = cur;
                }
                cur = cur.next;
            }
            return head;
        }
    }

    2、设置虚拟头结点

    class Solution {
        public ListNode removeElements(ListNode head, int val) {
            if (head == null){
                return head;
            }
            ListNode dummy = new ListNode(-1, head);
            ListNode pre = dummy;
            ListNode cur = head;
            while (cur != null) {
                if (cur.val == val){
                    pre.next = cur.next;
                }
                else{
                    pre = cur;
                }
                cur = cur.next;
            }
            return dummy.next;
        }
    }
  • 相关阅读:
    相关书籍下载2
    神奇的null和undefined
    相关书籍下载1
    微信小程序之for循环
    渐变(Gradients)
    模拟今日头条顶部导航菜单
    网格布局之相关特性
    网格布局之合并单元格
    网格布局
    Linux常用命令
  • 原文地址:https://www.cnblogs.com/zhaojiayu/p/15389854.html
Copyright © 2011-2022 走看看