zoukankan      html  css  js  c++  java
  • 【LeetCode每天一题】Remove Duplicates from Sorted List(移除有序链表中的重复数字)

      Given a sorted linked list, delete all duplicates such that each element appear only once.

    Example 1:

    Input: 1->1->2
    Output: 1->2
    

    Example 2:

    Input: 1->1->2->3->3
    Output: 1->2->3

    思路

      对于链表类的题目主要考的是指针的操作,他需要对指针的指向节点有正确的操作。这道题我们可以使用从头开始遍历,每当一个新节点时,都对该节点后面的节点进行比较是否相等,一直移动到和该节点不相等的节点为止,然后改变指针的指向跳过重复的元素。以直到末尾为止。这里需要主要循环结束条件等问题。时间复杂度为O(n),空间复杂度为O(1)。
    解决代码

    
    
     1 # Definition for singly-linked list.
     2 # class ListNode(object):
     3 #     def __init__(self, x):
     4 #         self.val = x
     5 #         self.next = None
     6 
     7 class Solution(object):
     8     def deleteDuplicates(self, head):
     9         """
    10         :type head: ListNode
    11         :rtype: ListNode
    12         """
    13         if not head:    # 空节点直接返回
    14             return head
    15         pre = head     
    16         while pre:      
    17             if pre.next and pre.val == pre.next.val: # 判断当前节点的后序节点是否相等。
    18                 tem, cur = pre.val, pre.next
    19                 while cur and cur.val == tem:     # 循环移动一直到和当前节点不相等的为止。
    20                     cur = cur.next
    21                 pre.next = cur            # 指向后面一个和当前节点不相等的节点
    22                 if not cur:                 # 为空说明遍历完毕直接返回
    23                     return head
    24                 continue                
    25             pre = pre.next
    26         
    27         return head                    # 返回结果
    
    
    
    
    
  • 相关阅读:
    图片轮播切换
    php用get_meta_tags轻松获取网页的meta信息
    PHP创建桌面快捷方式实例
    php 获取网站根目录的写法
    php mkdir 创建多级目录实例代码
    php计算剩余时间的自定义函数
    php实现获取汉字的首字母实例
    PDO封装函数
    Struts动态表单(DynamicForm)
    [WPF]静态资源(StaticResource)和动态资源(DynamicResource)
  • 原文地址:https://www.cnblogs.com/GoodRnne/p/10799528.html
Copyright © 2011-2022 走看看