剣指offer全集詳細python版-チェーンテーブルの重複するノードを削除
3089 ワード
タイトルの説明:ソートされたチェーンテーブルに重複するノードが存在します.チェーンテーブルの重複するノードを削除してください.重複するノードは保持されず、チェーンテーブルのヘッダポインタに戻ります.例えば、チェーンテーブル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):
# write code here
if not pHead or not pHead.next:
return pHead
if pHead.val == pHead.next.val:
pnode = pHead.next.next
while pnode and pnode.val==pHead.val: # pHead
pnode = pnode.next
return self.deleteDuplication(pnode) #
else:
pHead.next = self.deleteDuplication(pHead.next)
return pHead