zoukankan      html  css  js  c++  java
  • LeetCode_107.二叉树的层次遍历 II

    给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)

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

        3
       / 
      9  20
        /  
       15   7
    

    返回其自底向上的层次遍历为:

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

    C#代码

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     public int val;
     *     public TreeNode left;
     *     public TreeNode right;
     *     public TreeNode(int x) { val = x; }
     * }
     */
    public class Solution {
        public IList<IList<int>> LevelOrderBottom(TreeNode root) {
            var list = new List<IList<int>>();      
            if(root == null) return list;
    
            Queue<TreeNode> queue = new Queue<TreeNode>();
            Stack<List<int>> stack =new Stack<List<int>>();
            queue.Enqueue(root);
    
            var midList = new List<int>();  
            int count = 1;
            TreeNode midNode;
            while(count-- > 0){
                midNode = queue.Dequeue();
    
                if(midNode.left != null) queue.Enqueue(midNode.left);
                if(midNode.right != null) queue.Enqueue(midNode.right);
    
                midList.Add(midNode.val);
    
                if(count == 0){
                    stack.Push(midList);
                    midList = new List<int>();
                    count = queue.Count;
                }
            }
    
            while(stack.Count > 0){
                midList = stack.Pop();
                list.Add(midList);
            }
    
            return list;
        }
    }
    
  • 相关阅读:
    Oracle 分析函数
    Oracle 增加修改删除字段
    Oracle 重置序列
    End2EndIT
    Hyperledger Fabric SDK use case 1
    云计算中8项核心技术
    Cloud
    JVM Guide
    微信公众平台PHP开发
    在Linux系统环境下修改MySQL的root密码
  • 原文地址:https://www.cnblogs.com/fuxuyang/p/14242616.html
Copyright © 2011-2022 走看看