题目博客:http://blog.youkuaiyun.com/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)