題目部落格:http://blog.csdn.net/v_JULY_v/article/details/6057286
題目(微軟):
輸入一顆二進制樹,從上往下按層列印樹的每個結點,同一層中按照從左往右的順序列印。
例如輸入
8
/ /
6 10
/ / / /
5 7 9 11
輸出8 6 10 5 7 9 11。
代碼為:
#coding=utf-8
'''
Created on 2014年5月24日
@author: Administrator
'''
class TreeNode:
def __init__(self,value,leftChild=None,rightChild=None):
self.value=value
self.leftChild,self.rightChild=leftChild,rightChild
def printTreeWithFloor(root):
if not root:
return
else:
li=[root]
while 1:
if len(li)==0:
break
else:
tempnode=li.pop(0)
if not tempnode:
continue
print tempnode.value,
li.append(tempnode.leftChild)
li.append(tempnode.rightChild)
if __name__ == '__main__':
node5=TreeNode(5)
node7=TreeNode(7)
node9=TreeNode(9)
node11=TreeNode(11)
node6=TreeNode(6,leftChild=node5,rightChild=node7)
node10=TreeNode(10,leftChild=node9,rightChild=node11)
node8=TreeNode(8,leftChild=node6,rightChild=node10)
#printTree(node8)
#print
#swap(node8)
#printTree(node8)
printTreeWithFloor(node8)