题解 | #求二叉树的层序遍历#

求二叉树的层序遍历

http://www.nowcoder.com/practice/04a5560e43e24e9db4595865dc9c63a3

#     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




全部评论

相关推荐

01-14 19:01
吉首大学 Java
黑皮白袜臭脚体育生:加个项目吧,一般需要两个项目一业务一轮子呢,简历统一按使用了什么技术实现了什么功能解决了什么问题或提升了什么性能指标来写
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务