• [leetcode]Binary Tree Level Order Traversal II


    问题描写叙述:

    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,#,#,15,7},

        3
       / 
      9  20
        /  
       15   7
    

    return its bottom-up level order traversal as:

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

    confused what "{1,#,2,3}" means?> read more on how binary tree is serialized on OJ.



    代码:

    public List<List<Integer>> levelOrderBottom(TreeNode root) {  //java
    		if(root == null)
    			return new ArrayList<>();
    			
    		Stack<TreeNode> stack = new Stack<TreeNode>();
    		stack.add(root);
    		List<TreeNode> levelList = new ArrayList<TreeNode>();
    		
    		
    		List<List<Integer>> result = new ArrayList<List<Integer>>();
    		List<List<Integer>> invert_result = new ArrayList<List<Integer>>();
    		List<Integer> tmp = new ArrayList<Integer>();
    		
    		while(!stack.isEmpty()|| !levelList.isEmpty()){
    			if(stack.isEmpty()){
    				for(int i=levelList.size()-1; i>=0; i--)
    					stack.push(levelList.get(i));
    				levelList.clear();
    				invert_result.add(tmp);
    				tmp = new ArrayList<Integer>();
    			}
    			
    			while(!stack.isEmpty()){
    				TreeNode node = stack.pop();
    				tmp.add(node.val);
    				
    				if(node.left !=null)
    					levelList.add(node.left);
    				if(node.right !=null)
    					levelList.add(node.right);
    			}
    		}
    		invert_result.add(tmp);
    		
    		//invert result 
    		for(int i=invert_result.size()-1; i>=0; i--)
    			result.add(invert_result.get(i));
    		
    		return result;
            
        }


  • 相关阅读:
    MAVEN 安装与配置
    MAVEN 常用仓库地址
    一些常用的工具
    springFramework 源码学习之源码下载与编译
    测试工程师学习笔记
    什么是多态
    聚簇索引与非聚簇索引
    正则表达式菜鸟教程
    我的第一篇博客
    转Hibernate继承
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5314366.html
Copyright © 2020-2023  润新知