zoukankan      html  css  js  c++  java
  • LintCode Python 简单级题目 112.删除链表中的重复元素

    题目描述:

    给定一个排序链表,删除所有重复的元素每个元素只留下一个。

    样例

    给出 1->1->2->null,返回 1->2->null

    给出 1->1->2->3->3->null,返回 1->2->3->null

    题目分析:

    给定一个排序链表,删除所有重复的元素每个元素只留下一个。

     

    源码:

    """
    Definition of ListNode
    class ListNode(object):
        def __init__(self, val, next=None):
            self.val = val
            self.next = next
    """
    class Solution:
        """
        @param head: A ListNode
        @return: A ListNode
        """
        def deleteDuplicates(self, head):
            # write your code here
            if head is None:
                return None
            pre = head
            cur = pre
            fol = pre.next
            while fol.next is not None:
                # 一直找到第一个与pre值不等的fol,删除中间所有重复元素
                if pre.val == fol.val:
                    fol = fol.next
                else:
                    pre.next = fol
                    pre = fol
                    fol = pre.next
            # 检测末尾是否相等
            if pre.val == fol.val:
                pre.next = fol.next
            else:
                pre.next = fol
            return cur
    

      

  • 相关阅读:
    04-set方法的内存管理
    03-OC内存管理原则
    02-引用计数器的使用(含野指针、空指针)
    01-OC内存管理的基本原理
    16-NSDate
    15-NSValue
    14-NSNumber
    13-NSMutableDictionary
    12-NSDictionary(字典)
    11-NSArray和NSSet的区别
  • 原文地址:https://www.cnblogs.com/bozhou/p/6956092.html
Copyright © 2011-2022 走看看