题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
思路:用两个list,一个用来装节点,一个用来装节点的value。对于装节点的这个list,我们每次弹出最前面的节点,并依次将左节点和右节点加在后面。不管怎么样,这个装节点的list都能保证,将节点从上到下,同层节点从左到右进行添加、弹出。
代码如下:
class TreeNode():
def __init__(self,x):
self.val = x
self.left = None
self.right = None
def function(root):
A = []
result = []
if not root:
return result
A.append(root)
while A:
current_root = A.pop(0)
result.append(current_root.val)
if current_root.left:
A.append(current_root.left)
if current_root.right:
A.append(current_root.right)
return result