Why is this struck in loop,Can you please help me
class createTreeNode():
def __init__(self,value):
self.value=value
self.left=None
self.right=None
def preOrderTraversal(root):
while(root):
print root.value
preOrderTraversal(root.left)
preOrderTraversal(root.right)
return
def insertNodetoBST(root,i):
if(root==None):
return createTreeNode(i)
temproot=root;
while(temproot):
if(temproot.value>i):
if(temproot.left==None):
temproot.left=createTreeNode(i)
return root
temproot = temproot.left
else:
if (temproot.right == None):
temproot.right = createTreeNode(i)
return root
temproot=temproot.right
return root
def createBSTfromList():
root=None
l = [1,2]
for i in l:
root=insertNodetoBST(root,i);
preOrderTraversal(root);
createBSTfromList();
因为您的
preOrderTraversal
函数中有while(root)
,所以代码将永远循环。由于在循环体期间没有将root
修改为任何错误,因此如果root
不是None
开始的话,它将永远运行。在我想你希望那行是
if root
。这样,您可以运行块0次(基本情况)或一次(递归情况):在
if
或while
语句的条件周围不需要括号。你也不需要在行尾加上分号。您可能需要阅读PEP 8,这是Python代码的样式指南。在相关问题 更多 >
编程相关推荐