83.チェーンテーブルの重複する要素を削除する(Python)
2097 ワード
もっと多くの問題はステップを移動します【力ボタンの簡単な問題】
タイトル
難易度:★☆☆☆☆タイプ:チェーンテーブル
ソートチェーンテーブルを指定し、重複するすべての要素を削除して、各要素が一度だけ表示されるようにします.
例
例1:
入力:1->1->2出力:1->2例2:
入力:1->1->2->3->3出力:1->2->3
に答える
これはチェーンテーブルの基礎問題です.ソートチェーンテーブルの重複要素を削除するには、チェーンテーブルを遍歴し、後と現在の等しいノードを削除する必要があります.ここでは、理解を助けるために、チェーンテーブル作成関数(create_linked_list)と印刷チェーンテーブル関数(print_linked_list)を追加しました.
質問やアドバイスがあれば、コメントエリアへようこそ~
タイトル
難易度:★☆☆☆☆タイプ:チェーンテーブル
ソートチェーンテーブルを指定し、重複するすべての要素を削除して、各要素が一度だけ表示されるようにします.
例
例1:
入力:1->1->2出力:1->2例2:
入力:1->1->2->3->3出力:1->2->3
に答える
これはチェーンテーブルの基礎問題です.ソートチェーンテーブルの重複要素を削除するには、チェーンテーブルを遍歴し、後と現在の等しいノードを削除する必要があります.ここでは、理解を助けるために、チェーンテーブル作成関数(create_linked_list)と印刷チェーンテーブル関数(print_linked_list)を追加しました.
class Solution:
def deleteDuplicates(self, head):
cur = head #
while cur and cur.next: #
if cur.val == cur.next.val: #
cur.next = cur.next.next #
else:
cur = cur.next #
return head #
class ListNode:
"""
"""
def __init__(self, x): # ,
self.val = x #
self.next = None # , None
def create_linked_list(nums):
"""
:param nums:
:return: ,
"""
if not nums: #
return
head = prev = ListNode(nums[0]) #
for num in nums[1:]:
tmp = ListNode(num) #
prev.next = tmp #
prev = prev.next #
return head
def print_linked_list(head):
"""
:param head:
:return:
"""
nums = []
while head:
nums.append(head.val)
head = head.next
print(nums)
return nums
if __name__ == "__main__":
h = create_linked_list([1, 2, 3, 3, 3, 4, 5, 6, 6]) #
s = Solution() #
r = s.deleteDuplicates(h) #
print_linked_list(r) #
質問やアドバイスがあれば、コメントエリアへようこそ~