• 107. Binary Tree Level Order Traversal II 遍历二叉树2


    Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root).

    For example:
    Given binary tree [3,9,20,null,null,15,7],

        3
       / 
      9  20
        /  
       15   7
    

    return its bottom-up level order traversal as:

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

    题意:用广度优先的方式,遍历二叉树
    解法:借助队列存储节点,提前保存每一层的节点数量

    1. /**
    2. * Definition for a binary tree node.
    3. * public class TreeNode {
    4. * public int val;
    5. * public TreeNode left;
    6. * public TreeNode right;
    7. * public TreeNode(int x) { val = x; }
    8. * }
    9. */
    10. public class Solution {
    11. public List<List<int>> LevelOrderBottom(TreeNode root) {
    12. List<List<int>> result = new List<List<int>>();
    13. if (root == null) return result;
    14. Queue<TreeNode> queue = new Queue<TreeNode>();
    15. queue.Enqueue(root);
    16. while (queue.Count > 0) {
    17. List<int> curLevel = new List<int>();
    18. int count = queue.Count;
    19. for (int i = 0; i < count; i++) {
    20. TreeNode curNode = queue.Dequeue();
    21. curLevel.Add(curNode.val);
    22. if (curNode.left != null) queue.Enqueue(curNode.left);
    23. if (curNode.right != null) queue.Enqueue(curNode.right);
    24. }
    25. result.Add(curLevel);
    26. }
    27. result.Reverse();
    28. return result;
    29. }
    30. }






  • 相关阅读:
    Android 使用MediaPlayer 播放 视频
    Android加载asset的db
    MAC SVN 基本设置 终端命令
    AFNetWork 简单实用demo
    IntelliJ IDEA导出Java 可执行Jar包
    Xcode快速排错
    Listview多tab上滑悬浮
    N最短路径分词
    进程监控工具supervisor
    nginx配置指南
  • 原文地址:https://www.cnblogs.com/xiejunzhao/p/3f76a0d5c4b4e729bf8bf6adc1b763e1.html
Copyright © 2020-2023  润新知