• 删除排序链表中的重复元素--链表


    今天我们开始另一模块的算法题,关于链表的操作. Let's do it !!!

    题目

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

    示例1

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

    示例2

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

    思想

    • 首先我们定义好节点结构,包括节点值、指向下一个节点的指针,以及初始化函数
    • 定义current指针指向头节点,以及定义的nextPointer指针指向头节点的下一个元素
    • 只要nextPointer不为空,继续循环
    • 如当前元素!=nextPointer.val 则将current的下一个指针指向nextPointer,并且将current向后移动一个位置
    • 如果相等,说明nextPointer指向的要往后移动,而current不需要动

    代码

    public class ListNode {
        public var val: Int?
        public var next: ListNode?
        public init(_ val: Int) {
            self.val = val
            self.next = nil
        }
    }
    
    func deleteDuplicates(_ head: ListNode?) -> ListNode? {
        var current = head
        var nextPointer = head?.next
        current?.next = nil
        while nextPointer != nil {
            if current?.val == nextPointer?.val {
                nextPointer = nextPointer?.next
            } else {
                current?.next = nextPointer
                current = current?.next
                nextPointer = current?.next
                current?.next = nil //清楚野指针
            }
        }
        return head
    }

    结果

    运行结果如下:

    上面就是本题目的思路和代码,可以直接复制粘贴运行,希望对大家有所帮助!!!

  • 相关阅读:
    Django:重定向
    Django:使用get_template、render实现读取数据并传递数据
    Django:读入html中的数据
    Django:urls配置路由地址
    Django:基础知识-创建模块
    HTMLTestRunner美化
    python2 selenium
    Jmeter检查点
    Jmeter集合点
    jmeter的三种参数化方式
  • 原文地址:https://www.cnblogs.com/guohai-stronger/p/11926125.html
Copyright © 2020-2023  润新知