树练习题
Tree exercise issue
我正在尝试使用 VScode 测试此代码,但我想我声明了一些错误。
大家可以支持我吗??
非常感谢!!!
# Definition for a binary tree node.
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
class Solution:
def invertTree(self,root):
if not root:
return None
# swap the children
tmp = root.left <----- here shows me the issue
root.left = root.right
root.right = tmp
self.invertTree(root.left)
self.invertTree(root.right)
return root
tree = Solution()
node1 = TreeNode("4","2","7")
node2 = TreeNode("2","1","3")
node3 = TreeNode("7","6","9")
tree.invertTree(node1)
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-13-8dc5914e9836> in <module>()
23 node2 = TreeNode("2","1","3")
24 node3 = TreeNode("7","6","9")
---> 25 tree.invertTree(node1)
1 frames
<ipython-input-13-8dc5914e9836> in invertTree(self, root)
11
12 # swap the children
---> 13 tmp = root.left
14 root.left = root.right
15 root.right = tmp
AttributeError: 'str' object has no attribute 'left'
这是我得到的错误,我想问题出在创建节点的过程中,但我不知道该怎么做。
您的 left
和 right
只是字符串(没有 left
和 right
属性,因为您 可能得到说)。
您需要传递 TreeNode
s,e.x.:
tree = Solution()
root = TreeNode(
"4",
TreeNode(
"2",
TreeNode("1"),
TreeNode("3")
),
TreeNode(
"7",
TreeNode("6"),
TreeNode("9")
)
)
tree.invertTree(root)
我正在尝试使用 VScode 测试此代码,但我想我声明了一些错误。
大家可以支持我吗??
非常感谢!!!
# Definition for a binary tree node.
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
class Solution:
def invertTree(self,root):
if not root:
return None
# swap the children
tmp = root.left <----- here shows me the issue
root.left = root.right
root.right = tmp
self.invertTree(root.left)
self.invertTree(root.right)
return root
tree = Solution()
node1 = TreeNode("4","2","7")
node2 = TreeNode("2","1","3")
node3 = TreeNode("7","6","9")
tree.invertTree(node1)
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-13-8dc5914e9836> in <module>()
23 node2 = TreeNode("2","1","3")
24 node3 = TreeNode("7","6","9")
---> 25 tree.invertTree(node1)
1 frames
<ipython-input-13-8dc5914e9836> in invertTree(self, root)
11
12 # swap the children
---> 13 tmp = root.left
14 root.left = root.right
15 root.right = tmp
AttributeError: 'str' object has no attribute 'left'
这是我得到的错误,我想问题出在创建节点的过程中,但我不知道该怎么做。
您的 left
和 right
只是字符串(没有 left
和 right
属性,因为您 可能得到说)。
您需要传递 TreeNode
s,e.x.:
tree = Solution()
root = TreeNode(
"4",
TreeNode(
"2",
TreeNode("1"),
TreeNode("3")
),
TreeNode(
"7",
TreeNode("6"),
TreeNode("9")
)
)
tree.invertTree(root)