Pythonに基づいて、2つの反転リンク方法コードの例を実現します。
タイトル:
シングルチェーン表を反転します。
例:
入力:1->2->3->4->5->NULL
出力:5->4->3->2->1->NULL
ステップ:
チェーンを繰り返しまたは再帰的に反転させることができます。この問題を二つの方法で解決してもいいですか?
考え方:
主に、反転中にノードが失われないように注意する必要があります。2つのポインタを使ってもいいし、3つのポインタを使ってもいいです。
Python解法一:
シングルチェーン表を反転します。
例:
入力:1->2->3->4->5->NULL
出力:5->4->3->2->1->NULL
ステップ:
チェーンを繰り返しまたは再帰的に反転させることができます。この問題を二つの方法で解決してもいいですか?
考え方:
主に、反転中にノードが失われないように注意する必要があります。2つのポインタを使ってもいいし、3つのポインタを使ってもいいです。
Python解法一:
class Solution:
def reverseList(self, head):
cur, prev = head, None
while cur:
temp = cur.next
cur.next = prev
prev = cur
cur = temp
return prev
Python解法二:
class Solution:
def reverseList(self, head):
if head == None or head.next == None:
return head
prev = None
cur = head
post = head.next
while post:
cur.next = prev
prev = cur
cur = post
post = post.next
cur.next = prev
return cur
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。