题目
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
示例 1:
输入: 1->1->2
输出: 1->2
示例 2:
输入: 1->1->2->3->3
输出: 1->2->3
思想
判断当前值与下一个值是否相同,相同则修改节点的next指向下一个节点的next,重复判断。注意指针是否为空。
class Solution:
def deleteDuplicates(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
if head:
return head
b= head
n = head.next
while n!=None:
if b.val!=n.val:
b=n
n=n.next
else:
b.next = n.next
n= n.next
return head
题目
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。
示例 1:
输入: 1->2->3->3->4->4->5
输出: 1->2->5
示例 2:
输入: 1->1->1->2->3
输出: 2->3
思想
判断当前值与下一个值是否相同,相同则修改节点的next指向第二个相同``节点的next,重复判断。注意指针是否为空。
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def deleteDuplicates(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
if head == None:
return head
b= head
n = head.next
while n!=None:
if b.val != n.val:
b=n
n= n.next
else:
b = n.next
n =n.next.next
return head