擅长:python、mysql、java
<p>我想那是因为你没有定义动作,当l[1]和l[2]不是没有的时候。所以当你把参数传递给函数时,它会把'a'放到根的键上,然后发现定义的所有条件都不匹配,那么函数就不做任何事情就存在了。因此返回值只包含'a'。试试这个:</p>
<p><code>if (l[1] and l[2]) == None:
return bt.getRootValue()
elif l[1] != None and l[2] == None:
bt.left = ll2nr(l[1])
elif l[2] != None and l[1] == None:
bt.right = ll2nr(l[2])
else:
bt.left = ll2nr(l[1])
bt.right = ll2nr(l[2])
</code></p>