LEETCODE 102. 二叉树的层次遍历

LEETCODE 102. 二叉树的层次遍历

题目描述

给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。

例如:
给定二叉树: [3,9,20,null,null,15,7],

3
/ \
9 20
/ \
15 7
返回其层次遍历结果:

[
[3],
[9,20],
[15,7]
]

题目地址
中文版
英文版

 

代码实现

BFS方式

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution(object):
	def levelOrder(self, root):
		"""
		:type root: TreeNode
		:rtype: List[List[int]]
		"""
		if(not root):
			return []
		res = []
		queue = [root]
		while queue:
			size = len(queue)
			tmp = []
			for _ in xrange(size):
				node = queue.pop(0)
				tmp.append(node.val)
				if(node.left!=None):
					queue.append(node.left)
				if(node.right!=None):
					queue.append(node.right)
			res.append(list(tmp))
		return res
                                                                      
0 次阅读

发表评论

电子邮件地址不会被公开。