您的位置:首页 > 编程语言 > Python开发

[Leetcode]Binary Tree Level Order Traversal

2015-01-20 00:03 295 查看
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).

For example:

Given binary tree 
{3,9,20,#,#,15,7}
,

3
/ \
9  20
/  \
15   7


return its level order traversal as:

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

实现树的层序遍历~代码如下~

class Solution:
# @param root, a tree node
# @return a list of lists of integers
def levelOrder(self, root):
if root is None: return []
self.res = []
self.helper(root, 0)
return self.res

def helper(self, root, level):
if root is None: return
if len(self.res) < level + 1:
self.res.append([root.val])
else:
self.res[level].append(root.val)
if root.left:
self.helper(root.left, level + 1)
if root.right:
self.helper(root.right, level + 1)还有一种解法~代码如下

class Solution:
# @param root, a tree node
# @return a list of lists of integers
def levelOrder(self, root):
if root is None: return []
cur, res = [root], []
while cur:
next, vals = [], []
for node in cur:
vals.append(node.val)
if node.left:
next.append(node.left)
if node.right:
next.append(node.right)
res.append(vals)
cur = next
return res
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode python