zoukankan      html  css  js  c++  java
  • leetcode 83. 删除排序链表中的重复元素

    给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。

    示例 1:

    输入: 1->1->2
    输出: 1->2
    示例 2:

    输入: 1->1->2->3->3
    输出: 1->2->3

    思路:

    链表中删除元素的方法有remove,还有就是链表的指针特性,今天就利用链表的指针特性

    1.定义一个变量用于移动元素

    2.循环遍历链表,比较相邻两个元素的值,如果相等就让当前节点指针指向下下一个节点,这样那个节点没用指向就会被自动回收。达到了删除的目的。

    3.比较完成之后,将节点移动到下一个

    代码如下:

    var deleteDuplicates = function(head) {
            //1.给个变量用于保存当前节点
            var current = head
            //2.外层while控制循环完整个链表的长度
            while(head && head.next){
                //内层循环比较当前值和下一个节点值是否相等,相等的话就改变节点指向来删除元素
                while(head.next && head.val == head.next.val){
                    head.next = head.next.next
                }
                //3.指向下一个节点
                head = head.next
            }
            //4.返回
            return current
        };
    不积跬步无以至千里
  • 相关阅读:
    java的hashcode和equals
    Spring 注入所得
    Action注入错误
    oracle中的替换函数replace和translate函数
    CSS div水平垂直居中和div置于底部
    java double类型保留两位小数4种方法
    Delphi写的DLL回调C#
    Java基础进阶整理
    j技术方案
    SetForegroundWindow激活窗口
  • 原文地址:https://www.cnblogs.com/lyt0207/p/12354696.html
Copyright © 2011-2022 走看看