#     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