• LeetCode


    题目:

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

    思路:

    递归,然后swap

    package treetraversal;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class BinaryTreeLevelOrderTraversalII {
        
        public List<List<Integer>> levelOrderBottom(TreeNode root) {
            List<List<Integer>> res = new ArrayList<List<Integer>>();
            levelOrderTraversal(res, root, 0);
            int n = res.size();
            for (int i = 0; i < n / 2; ++i) {
                List<Integer> tmp = res.get(i);
                res.set(i, res.get(n - i - 1));
                res.set(n - i - 1, tmp);
            }
            return res;
        }
        
        private void levelOrderTraversal(List<List<Integer>> res, TreeNode root, int k) {
            if (root == null) return;
            if (res.size() < k + 1) {
                List<Integer> record = new ArrayList<Integer>();
                record.add(root.val);
                res.add(record);
            } else {
                res.get(k).add(root.val);
            }
            levelOrderTraversal(res, root.left, k + 1);
            levelOrderTraversal(res, root.right, k + 1);
        }
        
    }
  • 相关阅读:
    [BJWC2010]外星联络
    [NOI2015]品酒大会
    工艺 /【模板】最小表示法
    [NOI2016]优秀的拆分
    [HEOI2016/TJOI2016]字符串
    [SDOI2016]生成魔咒
    【模板】后缀自动机 (SAM)【SA解法】
    [湖南集训]图森
    [USACO17DEC]Standing Out from the Herd P
    Annihilate
  • 原文地址:https://www.cnblogs.com/null00/p/5118104.html
Copyright © 2020-2023  润新知