2019-03-20 剑指offer 删除链表中的重复节点

看到网上的解法都比较麻烦 自己使用双指 针代码量相对来说小很多

# -*- coding:utf-8 -*-
class ListNode:
    def __init__(self, x):
        self.val = x
        self.next = None

class Solution:
    def deleteDuplication(self, pHead):
        # write code here
        aux = ListNode('x')
        aux.next = pHead    # 设置辅助节点  方便最后返回头指针
        pStt, pEnd = aux, pHead # pStt 指向了重复部分的第一个元素的前一个节点  pEnd指向重复部分的最后一个元素
        while pEnd:
            if pEnd.next and pStt.next.val == pEnd.next.val:
                while  pEnd.next and pStt.next.val == pEnd.next.val:
                    pEnd = pEnd.next
                pEnd = pEnd.next
                pStt.next = pEnd
            else:
                pStt = pStt.next
                pEnd = pEnd.next
        return aux.next
全部评论

相关推荐

06-25 21:00
门头沟学院 Java
多拆解背记一下当前的高频场景面试题,结合自己的项目经历去作答,面试通过率原来真的不会低!
牛客96559368...:小公司不就是这样的吗,面试要么是点击就送,要么就是往死里拷打,没有一个统一的标准。这个不能代表所有公司
点赞 评论 收藏
分享
05-14 20:34
门头沟学院 Java
窝补药贝八股:管他们,乱说,反正又不去,直接说680
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
今天 11:47
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务