zoukankan      html  css  js  c++  java
  • Remove Duplicates from Sorted List II

    Remove Duplicates from Sorted List II

    问题:

    Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.

    思路:

      prepre pre cur 指针的相互作用

    我的代码:

    public class Solution {
        public ListNode deleteDuplicates(ListNode head) {
            if(head == null || head.next == null)   return head;
            ListNode dummy = new ListNode(-1);
            dummy.next = head;
            ListNode prepre = dummy;
            ListNode pre = head;
            ListNode cur = head.next;
            while(cur != null)
            {
                if(cur.val == pre.val)
                {
                    while(cur != null && cur.val == pre.val)
                    {
                        cur = cur.next;
                    }
                    prepre.next = cur;
                    pre = cur;
                    if(cur != null)
                        cur = cur.next;
                    else
                        cur = null;
                }
                else
                {
                    prepre = pre;
                    pre = cur;
                    cur = cur.next;
                }
            }
            return dummy.next;
        }
    }
    View Code

    学习之处:

    • 这种问题无非是用两个指针标示前后位置或者三个指针标示,标示好了位置前后关系后,再画画图就差不多了。
    • 当然别人也可以通过不用标志位置前后关系,也能做出来,如Remove Duplicates from Sorted List ,有人写出了这样简洁的代码,通过动还是不动的方法,简洁明了。
    public class Solution {
        public ListNode deleteDuplicates(ListNode head) {
            if (head == null) {
                return null;
            }
    
            ListNode node = head;
            while (node.next != null) {
                if (node.val == node.next.val) {
                    node.next = node.next.next;
                } else {
                    node = node.next;
                }
            }
            return head;
        }
    }
    View Code
  • 相关阅读:
    jdk1.8StreamApi
    Python 【类的创建和类的实例化】
    Python【网络编程】
    Python 【图片转字符画】
    echarts 【图表的基本使用】
    Java 【Math】
    Java 【循环语句】
    Java 【instanceof使用】
    java【第三课 条件语句】
    Java【第二课 扫描仪 & 布尔数据类型】
  • 原文地址:https://www.cnblogs.com/sunshisonghit/p/4338981.html
Copyright © 2011-2022 走看看