我正在尝试对一棵树执行中序遍历。代码本身感觉没问题,但它没有正常工作。我有一种感觉,这可能与if条件、python中的append工作方式或者返回值等有关。如果我使用print而不是return,这个代码可以正确运行,但我想能够使用return并仍然得到正确的答案。例如,对于树[1,None,2,3],我的代码返回[1],这显然是错误的。
此外,是否有可能使用列表推导来解决这个问题?如果可以,请提供任何示例代码。
以下是我的代码:
class Solution(object):
def inorderTraversal(self, root):
res = []
if root:
self.inorderTraversal(root.left)
res.append(root.val)
self.inorderTraversal(root.right)
return res
在将此标记为重复之前,我知道在Stackoverflow上已经问过许多次关于顺序遍历的问题,但是它们都没有帮助我理解为什么我的理解是错误的。如果有人可以帮助我学习如何纠正我的方法而不仅仅是发布另一个链接而没有解释,我将非常感激。非常感谢!
root
,但是列表没有left
或right
属性。 - Patrick Haugh