ノードのリンクリストへのポインタのための単一のケースを削除するノード
件名の説明:
与えられたリストを想定1-> 2-> 3-> 4-> 5-> 6> 7は、最初の要素5,5へのポインタは、リストは、1-> 2-なる削除、削除するノードを必要と> 3-> 4-> 6> 7
アイデアの分析:
- このノードがリストの最後のノードである場合は、このノードを削除することはできません。
最後のノードが現在のノードでその後継ノードにデータをコピーすることによって、ノードリンクリストでない場合、メソッドの後続ノードを削除します。
コードの実装:
# - -coding:UTF-8 -
"" "
@Author:图南
@Software:PyCharm
@time:2019年9月7日19:46
"""
クラスノード:
デフのinit(自己、データ=なし、次回=なし):
self.data =データ
次self.next =デフprintLink(ヘッド):
ヘッドがNoneまたはhead.nextがNoneの場合:
戻る
CUR = head.next
しばらくCUR =なし:!
プリント(cur.data、エンド=」「)
CUR = cur.next
印刷()デフconLink(NUMS、N):
NUMS =リスト(マップ(int型、nums.split(」「)))
のn =(n)はint型
lenの場合(NUMS)== 0あるいはn == 0:
リターン
P =なし
ヘッド=ノード()
CUR =ヘッド
範囲でI(1、LEN(NUMS)+1):
ノード=ノード(NUMS [I-1])
cur.next =ノード
CUR =ノード
どうか== N:
P = CUR
リターンヘッド、PデフdeleteP(P):
:p.nextはNoneでない場合
はFalseを返す
p.dataを= p.next.dataの
p.next = p.next.nextの
真のリターンIF 名称 == ' メイン ':
NUMS = INPUT( 'リスト:')
N-INPUT =( 'ノード')
ヘッド、P = conLink(NUMS、N-)
('削除する前に:')プリント
PrintLink(ヘッド)
F deleteP =(P-)
:F IF
印刷( '削除した後:')
PrintLink(ヘッド)
他:
( '!削除することはできません')を印刷結果: