• LeetCode 203——移除链表(JAVA)


    删除链表中等于给定值 val 的所有节点。

    示例:

    输入: 1->2->6->3->4->5->6, val = 6
    输出: 1->2->3->4->5

    直接上代码:

    /**
     * Definition for singly-linked list.
     * public class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode(int x) { val = x; }
     * }
     */
    class Solution 
    {
        public ListNode removeElements(ListNode head, int val) 
        {
            while(head!=null&&head.val==val)//初始化
            {
                ListNode pre=head;
                head=pre.next;
                pre.next=null;
            }
            if(head==null)//头节点为空
            {
                return null;
            }
            ListNode pre=head;
            while(pre.next!=null)
            {
                ListNode cur=pre.next;
                if(cur.val==val)//移除节点
                {
                    pre.next=cur.next;
                    cur.next=null;
                }
                else //指针后移
                {
                    pre=pre.next;
                }
            }
           return head;
        }
    } 

    遍历链表,找出每个待删除节点前的每一个节点。

    特殊情况:第一个节点就是待删除节点,要进行单独的操作。

    注意点:当输入1->1时,删除完第一个节点,剩下的链表的头节点又是待删除节点。

  • 相关阅读:
    验证码图片不刷新解决方法
    表单验证
    Thinkphp显示系统常量信息的方法(php的用法)
    原生sql语句执行
    Python中的模块(2)
    Python 正则表达式中级
    正则表达式 和 原生字符串 r
    collections模块
    时间模块
    random模块
  • 原文地址:https://www.cnblogs.com/jiameng991010/p/11260241.html
Copyright © 2020-2023  润新知