zoukankan      html  css  js  c++  java
  • leetcode-链表系列-链表去重(leetcode 83)

    83. 删除排序链表中的重复元素
    存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。

    题解:
    列表去重,一般区分有序数组还是无序数组,
    针对有序链表的去重,可以采用双指针中的快慢指针, 当快指针不等于慢指针时,
    将快指针的值赋值于慢指针,慢指针向前移动一位
    注意:有序链表的去重和有序数组的去重方法一样

    不管是有序数组还是无序数组,可以采用下面方法:
    先申请一个列表,然后遍历链表
    判断当前元素是否在列表中,如果不在列表中,
    则先将这个元素添加到列表中,并将这个Node添加到不重复的列表中

    代码:
    def unorder_linked_array_duplicates(header):
    mov = LinkedNode(0)
    dict_mov = mov
    record_node = []

    while header is not None:
    if header.val not in record_node:
    record_node.append(header.val)
    dict_mov.next = header
    dict_mov = dict_mov.next
    header = header.next
    return mov.next


    def ordered_linked_list_duplicates(header):
    mov = header
    slow = mov
    quick = mov.next
    while quick is not None:
    if slow.val != quick.val:
    slow.next = quick
    slow = slow.next
    quick = quick.next
    return mov
  • 相关阅读:
    liunx下手动安装git及配置
    Liunx系统下删除自带的JDK及安装需要的JDK版本
    Pipeline简单实现的代码
    HttpClient-post请求,含图片
    Java
    函数及BOM
    JS--EcmaScript
    定位
    浮动
    盒子模型
  • 原文地址:https://www.cnblogs.com/tomorrow-hope/p/15481490.html
Copyright © 2011-2022 走看看