擅长:python、mysql、java
<p>这是我自己问题的答案</p>
<pre><code>class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
def path2Node2(self, root, node2):
if not root:
return []
def _helper(root, node, paths):
if not root:
return []
if root.val == node.val:
paths.append(root.val)
return paths
l = _helper(root.left, node, paths + [root.val])
r = _helper(root.right, node, paths + [root.val])
if l: return l
if r: return r
return _helper(root, node2, [])
if __name__ == '__main__':
l = TreeNode(10)
l.left = TreeNode(8)
l.right = TreeNode(2)
l.left.left = TreeNode(3)
l.left.right = TreeNode(5)
l.right.left = TreeNode(4)
print(l.path2Node2(l, l.right))
</code></pre>
<p>我添加了两行:</p>
<pre><code>if l: return l
if r: return r
</code></pre>
<p>但我仍然不明白我最初的方法有什么不同</p>