zoukankan      html  css  js  c++  java
  • python实现剑指offer删除链表中重复的节点

    题目描述

    在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5

    解题思路

    # -*- coding:utf-8 -*-
    class ListNode:
        def __init__(self, x):
            self.val = x
            self.next = None
    class Solution:
        def deleteDuplication(self, pHead):
            # 第一步先检测一下是不是空的或者是不是只有一个
            if pHead is None or pHead.next is None:
                return pHead
            # 第二步因为防止第一个就是重复的节点,所以创作一个新的头节点。
            first = ListNode(-1)
            # 因为需要两个指针,一个指着重复结点上一个结点,一个指着重复结点后一个值。
            first.next = pHead
            last = first
            while pHead and pHead.next:
                if pHead.val == pHead.next.val:
                    val = pHead.val
                    while pHead and val == pHead.val:
                        pHead = pHead.next
                    last.next = pHead
                else:
                    last = pHead
                    pHead = pHead.next
            return first.next
    
  • 相关阅读:
    Jquery Plugin模版
    jquery之extend
    java反射技术实例
    java基础汇总
    Java学习路线
    java的一个爬虫
    Java深度理解——Java字节代码的操纵
    java编程思想-基础
    hdu 5201 The Monkey King【容斥原理+组合数学】
    容斥原理
  • 原文地址:https://www.cnblogs.com/tianqizhi/p/9646868.html
Copyright © 2011-2022 走看看