题目 Binary Tree Level Order Traversal

层次遍历二叉树
链接
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,null,null,15,7],

3
/ \
9 20
/ \
15 7

return its level order traversal as:

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

解答

my answer

class Solution:def levelOrder(self, root):""":type root: TreeNode:rtype: List[List[int]]"""res, level = [], [root]while root and level:currentNode = []nextLevel = []for node in level:currentNode.append(node.val)if node.left:nextLevel.append(node.left)if node.right:nextLevel.append(node.right)res.append(currentNode)level = nextLevelreturn res

python 解法2

class Solution:# 返回从上到下每个节点值列表,例:[1,2,3]def PrintFromTopToBottom(self, root):# write code hereif root is None:return []queue = [root]res = []while queue:node = queue.pop(0)res.append(node.val)if node.left:queue.append(node.left)if node.right:queue.append(node.right)return res

网友值得参考的解答

Solution 1, (6 lines)

def levelOrder(self, root):ans, level = [], [root]while root and level:ans.append([node.val for node in level])LRpair = [(node.left, node.right) for node in level]level = [leaf for LR in LRpair for leaf in LR if leaf]return ans

Solution 2, (5 lines), same idea but use only one list comprehension in while loop to get the next level

def levelOrder(self, root):ans, level = [], [root]while root and level:ans.append([node.val for node in level])            level = [kid for n in level for kid in (n.left, n.right) if kid]return ans

Solution 3 (10 lines), just an expansion of solution 1&2 for better understanding.

def levelOrder(self, root):if not root:return []ans, level = [], [root]while level:ans.append([node.val for node in level])temp = []for node in level:temp.extend([node.left, node.right])level = [leaf for leaf in temp if leaf]return ans

other

def levelOrder(self, root):ret = []  level = [root]while root and level:currentNodes = []nextLevel = []for node in level:currentNodes.append(node.val)if node.left:nextLevel.append(node.left)if node.right:nextLevel.append(node.right)ret.append(currentNodes)level = nextLevelreturn ret

102. Binary Tree Level Order Traversal相关推荐

  1. LeetCode: 102. Binary Tree Level Order Traversal

    题目 Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to rig ...

  2. Leetcode 102. Binary Tree Level Order Traversal(二叉树的层序遍历)

    Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...

  3. Leet Code OJ 102. Binary Tree Level Order Traversal [Difficulty: Easy]

    题目: Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to ri ...

  4. LeetCode 102. Binary Tree Level Order Traversal

    原题 Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to rig ...

  5. 107. Binary Tree Level Order Traversal II

    题目 Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from l ...

  6. LeetCode: 107. Binary Tree Level Order Traversal II

    题目 Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from l ...

  7. LeetCode 107. Binary Tree Level Order Traversal II

    LeetCode 107. Binary Tree Level Order Traversal II Solution1:我的答案 比102那道题多了一行代码... /*** Definition f ...

  8. Binary Tree Level Order Traversal II 解题思路

    思路: 与Binary Tree Level Order Traversal I 几乎一样.只是最后将结果存放在栈里,然后在栈里再传给向量即可. 再次总结思路: 两个queue,先把第一个放进q1,循 ...

  9. [LeetCode] Binary Tree Level Order Traversal 二叉树层次遍历(DFS | BFS)

    目录: 1.Binary Tree Level Order Traversal - 二叉树层次遍历 BFS 2.Binary Tree Level Order Traversal II - 二叉树层次 ...

最新文章

  1. linux tunnel 与cisco 三层交换机的tunnel互联
  2. 创建cordova项目
  3. Error:The supplied javaHome seems to be invalid. I cannot find the java executable
  4. 零基础入门Python I/O:从print函数开始
  5. 【yarn】yarn 命令行查看 资源状态
  6. 从化工技术员到微软最有价值专家(MVP)--我的IT从业路
  7. python爬取动态网页_Python实现爬取网页中动态加载的数据
  8. 6款强烈推荐的PDF阅读器
  9. 使用Python破解pdf文件密码
  10. 微信聊天小程序——(四、聊天页面)
  11. 双态IT时代,你需要什么样的IT咨询服务?
  12. FileZillaClient连接虚拟机教程
  13. 小程序实现文字竖排展示
  14. eclipse解决中文乱码
  15. c语言.jpg图片转成数组_如何把pdf图片转成jpg?快看高手私藏实用的技巧
  16. 一、微信小程序拼团项目简介
  17. 【入门】大象喝水 C++题解
  18. LeetCode/LintCode 题解丨一周爆刷双指针:数组中的最长山脉
  19. 【Web开发的架构】
  20. seajs 和spm的使用简介

热门文章

  1. Kotlin协程使用,协程使用注意事项,协程中的await方法使用|不使用suspend使用协程
  2. 2022-2028年中国电子陶瓷行业深度调研及投资前景预测报告
  3. VSCode 安装 Go 插件、gopls 是个什么东东
  4. 2022-2028年中国PE自粘性保护膜行业市场调查研究及发展前景展望报告
  5. 快速给shell脚本加上使用提示
  6. 判断两个树是否相等和判断tree1是否包含tree2 python实现
  7. 《Attention is All You Need》浅读(简介+代码)
  8. LeetCode简单题之二分查找
  9. 系统芯片(SOC)架构- Aviral Mittal
  10. 画笔Paint的使用