# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param root TreeNode类
# @return int整型二维数组
#
class Solution:
def __init__(self):
self.nodes=[]
self.nodes_val=[]
def levelOrder(self , root):
if root==None:
print([])
return
if root.left==None and root.right==None:
return [root.val]
self.nodes.append([root.left,root.right])
self.nodes_val.append([root.val])
while(len(self.nodes)>0):
current_node=self.nodes.pop()
#当前节点是左右子树构成的,取出左右节点进行判断
left_node=current_node[0]
right_node=current_node[1]
if left_node!=None and right_node!=None:
self.nodes_val.append([left_node.val,right_node.val])
self.nodes.append([left_node.left,left_node.right])
self.nodes.append([right_node.left,right_node.right])
elif left_node!=None and right_node==None:#只有左节点不为空
self.nodes_val.append([left_node.val])
self.nodes.append([left_node.left, left_node.right])
elif right_node!=None and left_node==None:#只有右节点不为空
self.nodes_val.append([right_node.val])
self.nodes.append([right_node.left,right_node.right])
else:#均为空
pass
return self.nodes_val