class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
a1 = TreeNode(10)
a2 = TreeNode(5)
a3 = TreeNode(12)
a4 = TreeNode(4)
a5 = TreeNode(7)
a1.left = a2
a1.right = a3
a2.left = a4
a2.right = a5
# 已遍历节点列表
X = []
X.append(a1)
vals = []
def guangdu(phead):
k = 1 # 始终为上一层节点的个数
while len(X) != 0:
n = 0 # 得到下一层节点的个数
# 遍历上一层节点
for i in range(k):
vals.append(X[0].val) #保存上一层节点的值
if X[0].left != None:
n += 1 # 累积,求下一层节点数量
X.append(X[0].left)
if X[0].right != None:
n += 1 # 累积,求下一层节点数量
X.append(X[0].right)
X.pop(0) # 剔除上一层节点
k = n # 将下层节点个数赋值
guangdu(a1)
print vals