リンクリストを移動する私は「リンクリスト」を定義する彼らのコードはhereを見つけることができるコーディングインタビュー第6版を割れて作業して「次へ」Pythonの:「次へ」
のその定義が不明ですよ。私はランダムリンクリストの最後の要素からkthを見つける2番目の練習を試しています。
マイコード:
from LinkedList import LinkedList
def kth_to_last(ll, k):
num_seen = 0
length_list = count_length(ll)
val = ll.head
# ISSUE IS HERE
while val.next != None:
print 'hi'
val.next = val.next.next
"""
while num_seen < (length_list - k):
val = val.next
num_seen += 1
"""
return val.next
# Counts length of LL
def count_length(ll):
val = ll.head
count = 1
while val.next != None:
count += 1
val.next = val.next.next
return count
ll = LinkedList()
ll.generate(10, 0, 99)
print(ll)
kth_to_last(ll, 3)
それはリストをうまく数えていますが、最初の定義のために、私はそれがリンクリスト内を移動するために得ることができない(それはで「こんにちは」印刷されませんすべて)。
私はコメントアウトしたようなことをしています(私たちはそれを試してみるために「テール」も定義されています)。しかし、なぜ 'count_length'内でリストを動かすことができるのか混乱します。それで私は 'kth_to_last'の中でそれを動かすことができないのですか?
編集:明確にするために、私は「kth_to_last」内val.next印刷する場合、それは
EDIT2「なし」の値があります:私はちょうど「count_length、」次の進行をコメントアウトした場合
を良い。誰かがこの関数を呼び出すのが次のように変わる理由を私に説明できますか?それはリストの最後に私をくっついたのですか?
マイコード:これはうまく
ありがとう@ウィルウィルヒルム、それは意味がある、私はそれを修正します。 – Monica
だから私が "val_next"をコメントアウトすれば、問題は "count_length"という私の呼び出しであるように見えます。なぜ、長さを数えると、llが変わるのですか? – Monica
@wildwilhelmありがとう、私はあなたの完全なコメントを見ました - それは完全な意味があります。ありがとうございました! – Monica