zoukankan      html  css  js  c++  java
  • leetcode 107 Binary Tree Level Order Traversal II ----- java

    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]
    ]
    

    与之前的题做法一样,就是插入的时候,每次在第一位插入。

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    public class Solution {
        public List<List<Integer>> levelOrderBottom(TreeNode root) {
                
    
            List list = new ArrayList<List<Integer>>();
    
            if( root == null)
                return list;
    
            Queue<TreeNode> tree = new LinkedList<TreeNode>();
    
    
            tree.add(root);
            while( !tree.isEmpty() ){
                List ans = new ArrayList<Integer>();
                int size = tree.size();
                for( int i = 0;i<size;i++){
                    TreeNode node = tree.poll();
                    ans.add(node.val);
                    if( node.left != null )
                        tree.add(node.left);
                    if( node.right != null)
                        tree.add(node.right);
                }
                if( !ans.isEmpty() )
                    list.add(0,ans);
    
    
    
            }
    
    
    
            return list;
    
    
        }
    }
     
  • 相关阅读:
    迭代器
    LinkedList存储一副扑克牌,实现洗牌功能。
    线程
    堆栈、队列
    路由-第7集
    javascript中split字符串分割函数
    this的用法
    什么是AOP面向切面编程
    Servlet与JSP的区别
    堆(heap)、栈(stack)、方法区(method)
  • 原文地址:https://www.cnblogs.com/xiaoba1203/p/6008899.html
Copyright © 2011-2022 走看看