# coding=utf-8
# coding=utf-8
class TreeNode:
def __init__(self,val,left=None,right=None):
self.val=val;
self.left=left;
self.right=right;
def CreatTree():
node = TreeNode(0);
temp=input('请输入:');
if temp=='#':
return None
else:
node.val=temp;
node.left=CreatTree();
node.right=CreatTree();
return node
return node
def printf(TreeNode):
if TreeNode:
print(TreeNode.val);
printf(TreeNode.left);
printf(TreeNode.right);
if __name__ == '__main__':
printf(CreatTree());
The method on the picture is correct, but there are several forks that require several #s, which can end.
The following error
def CreatTree(node):
temp=input('请输入:');
if temp=='#':
return None
else:
node.val=temp;
node.left=CreatTree(node);
node.right=CreatTree(node);
return node
return node
Which node is this node? ? The computer will go wrong. Just instantiate in the direct method.