剑指offer--面试题57:删除链表中重复的结点
2016-09-28 16:29
483 查看
题目描述
在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5python实现:
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def deleteDuplication(self, pHead):
# write code here
if pHead is None:
return None
#先看头结点是否有重复
p = pHead
isDuplicated = False
while p and p.next:
if p.val==p.next.val:
isDuplicated = True
p = p.next
else:
if isDuplicated:
pHead = p.next
p = pHead
isDuplicated=False
else:
break
if isDuplicated:
pHead = p.next
if pHead is None:
return None
p = pHead.next
pre = pHead
isDuplicated = False
while p and p.next:
if p.val == p.next.val:
isDuplicated = True
p = p.next
else:
if isDuplicated:
pre.next = p.next
isDuplicated = False
else:
pre.next = p
pre = p
p = p.next
if isDuplicated:
pre.next = p.next
return pHead
相关文章推荐
- 剑指offer-面试题57:删除链表中重复的结点
- 《剑指offer》面试题57 删除链表中重复的结点 C++ 实现 以及 错误总结 (指针问题)!!
- (剑指Offer)面试题57:删除链表中的重复结点
- 剑指offer 面试题57 删除链表中重复的结点
- 《剑指Offer》学习笔记--面试题57:删除链表中重复的结点
- 剑指offer-面试题57-删除链表中重复的结点
- 剑指Offer系列-面试题57:删除链表中重复的结点
- 面试题57. 删除链表中重复的结点
- 剑指offer面试题[57]-删除链表中重复的结点
- 【剑指Offer学习】【面试题57:删除链表中重复的结点】
- 面试题57:删除链表中重复的结点
- 【剑指Offer】面试题57:删除链表中重复的结点
- 剑指offer面试题57 删除链表中重复的结点
- 《剑指Offer》面试题57:删除链表中重复的节点
- 《剑指offer》:[57]删除链表中重复的结点
- 面试题57 删除链表中重复的结点
- 剑指offer 面试题57 删除链表中重复的结点
- 【剑指Offer】面试题57:删除链表中重复的结点
- 面试题57:删除链表中重复的结点
- 《剑指offer》-删除链表中重复的结点