107. Binary Tree Level Order Traversal II
Posted captain-dl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了107. Binary Tree Level Order Traversal II相关的知识,希望对你有一定的参考价值。
题目来源:
https://leetcode.com/problems/binary-tree-level-order-traversal-ii/
自我感觉难度/真实难度:
题意:
分析:
层序遍历,然后把结果反一下返回值就可以了
自己的代码:
res=[] if not root: return res queue=collections.deque() queue.append(root) while queue: level=[] for i in range(len(queue)): node=queue.popleft() level.append(node.val) if node.left: queue.append(node.left) if node.right: queue.append(node.right) res.append(level) return res.reverse()
最后一步有问题,reverse()函数没有返回值,应该使用 res[::-1]
代码效率/结果:
Runtime: 44 ms, faster than 49.24% of Python3 online submissions for Binary Tree Level Order Traversal II.
优秀代码:
class Solution: def __init__(self): self.traverse=[] def levelOrderBottom(self, root): """ :type root: TreeNode :rtype: List[List[int]] """ if not root: return [] level = [root] self.traverse.append([node.val for node in level]) self.traverse_helper(level) return self.traverse[::-1] def traverse_helper(self,level): if not level: return queue = [] for node in level: if node.left: queue.append(node.left) if node.right: queue.append(node.right) if not queue: return self.traverse.append([node.val for node in queue]) self.print_traverse(queue) self.traverse_helper(queue) def print_traverse(self,level): for node in level: print(node.val)
代码效率/结果:
自己优化后的代码:
反思改进策略:
1.实现层序的两种方法:使用队列,层序加点。使用字典格式,对号入座
写题时间时长:1hour
以上是关于107. Binary Tree Level Order Traversal II的主要内容,如果未能解决你的问题,请参考以下文章
107. Binary Tree Level Order Traversal II
107. Binary Tree Level Order Traversal II
LeetCode107. Binary Tree Level Order Traversal II 解题报告
[LeetCode]题解(python):107 Binary Tree Level Order Traversal II