(パイソン)アルゴリズム犬の料理日記(リストシリーズ)_leetcode削除237ノードのリスト

指定されたノードが削除されるために与えられたリスト(非エンド)ノードを削除することを可能にする関数を記述してください、あなただけ必要となります。

既存のリスト - ヘッド= [4,5,1,9]、それはのように表すことができます。

例1:

入力:ヘッド= [4,5,1,9]、ノード = 5
出力:[4,1,9]
あなたは5の値リスト内の指定された2番目のノードた後で、あなたの関数を呼び出す:辞書リスト株4 - > 1 - > 9
例2:

入力:ヘッド= [4,5,1,9]、ノード = 1つの
出力:[4,5,9]
リストの与えられた値1の後にあなたが第3のノード、そしてあなたの関数を呼び出す:辞書リスト株4 - > 5 - > 9。
 

説明:

少なくとも二つのノードを含むリスト。
リスト内のすべてのノードの値がユニークです。
非指定されたノードおよびエンド・ノードは、リンクされたリスト内の有効なノードでなければなりません。
あなたの関数から結果を返しません。

出典:滞在ボタン(LeetCode)
リンクします。https://leetcode-cn.com/problems/delete-node-in-a-linked-list
 

この質問は、それが唯一のノードに、何の頭を持っていない、非常に興味深いです

1-> 2-> 3-> 4、ここで削除した2

1-> 3-> 3-> 4 1 - > 3-> 4

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def deleteNode(self, node):
        """
        :type node: ListNode
        :rtype: void Do not return anything, modify node in-place instead.
        """
        node.val = node.next.val
        node.next = node.next.next

ヘッドケースがあることを、知る権利はありません

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def deleteNode(self, node):
        """
        :type node: ListNode
        :rtype: void Do not return anything, modify node in-place instead.
        """
        if head == node:
            tmp=head.next
            head.next = None
            head = tmp
        else:
            while(head.next.next):
                if head.next==node:
                    head.next= head.next.next
                else:
                    head = head.next

 

公開された44元の記事 ウォンの賞賛0 ビュー1909

おすすめ

転載: blog.csdn.net/weixin_39331401/article/details/104548169