問題--237にleetcodeソリューションは、ノードのリストを削除します

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

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

spacer.gif

例1:

入力:ヘッド= [4,5,1,9]、ノード= 5

出力:[4,1,9]

説明:あなたは、その値は、あなたの関数呼び出し、リスト株4の後に2番目のノード5を、与えられたリスト - > 1 - > 9。

例2:

入力:ヘッド= [4,5,1,9]、ノード= 1

出力:[4,5,9]

説明:値1であるあなたに与えられた第3のノードリストの後に、その後、あなたの関数を呼び出し、リスト株4 - > 5 - > 9。



問題解決のアイデア:

        のみ削除することが要求されたノードに与えられることに、タイトルといえば、そのため、ノード全体を横断考慮する必要、ノードのみ電流を削除する必要がありません

C ++

/ ** 
*単一リンクリストのための定義。
*構造体ListNode { 
* INTヴァル。
* ListNode *次の; 
* ListNode(INT X):ヴァル(x)は、次の(NULL){} 
*}。
* / 
クラスのソリューション{ 
パブリック:
    ボイドdeleteNode(ListNode *ノード){ 
        ノード- >ヴァル=ノード- >ネクスト>ヴァル。
        ListNode * toDel =ノード- >次。
        ノード- >次= toDel->次。
        toDelを削除します。
        toDel = NULL; 
    } 
}。


パイソン

重リンクリストのための#定義。
#クラスListNode: デフ__init __(自己、X):
#1 self.val = X 
#self.next =なし
クラスソリューション:
    デフdeleteNode(自己、ノード
        ):""」
        :タイプノード:ListNode 
        :RTYPE:ボイドはしないでください、何を返す代わりに、インプレースノードを変更します。
        「」」
        node.val = node.next.val 
        node.next = node.next.next








おすすめ

転載: blog.51cto.com/12876518/2407070