指定されたノードが削除されるために与えられたリスト(非エンド)ノードを削除することを可能にする関数を記述してください、あなただけ必要となります。
既存のリスト - ヘッド= [4,5,1,9]、それはのように表すことができます。
例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