# 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());
图上方法是正确的,但是有几个分叉就要几个#,这才能结束。
以下错误
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
这个node到底是哪个node??计算机会出错。直接方法里面例化即可。