イムのpythonに問題が..私は、バイナリツリーノードのタイプがあります。Pythonのクラス可変性
class NODE:
element = 0
leftchild = None
rightchild = None
をそして私は、関数deleteminを実装する必要がありました:まだ
def DELETEMIN(A):
if A.leftchild == None:
retval = A.element
A = A.rightchild
return retval
else:
return DELETEMIN(A.leftchild)
を、とき私は、バイナリツリーの上にこれをテストしてみてください:
1
/\
0 2
それはちょうどnullに設定することで、0を削除する必要はなく、私はこれを取得:
0
/\
0 2
なぜPythonで関数内のノードを無効にできないのですか?彼らはこれを行う方法ですか?
うーん、あなたが他の を意味いけない: FOO、A.leftchild = DELETEMIN(A.leftchild) リターンFOO、A.leftchild – DevDevDev
各再帰の場合は、ときベース '.leftchild'を再割り当てする必要がないのはなぜ呼び出し元は "root"を変更します。 'バー'?私はそれを果たしていないが、それは同等のようだ。 –