Leetcode 107. Binary Tree Level Order Traversal II 二叉树层次遍历2 解题报告

来源:互联网 发布:php导航源码 编辑:程序博客网 时间:2024/05/17 07:43

1 解题思想

这道题基本和102一样:
Leetcode 102. Binary Tree Level Order Traversal 二叉树按层遍历 解题报告
所谓的区别,就是102是正常的自顶向下的遍历,而107则是自底向上。

所以可以参照下102的,107其实也差不多,没什么难度。。

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   7return its bottom-up level order traversal as:[  [15,7],  [9,20],  [3]]

3 AC解

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } *  * 先序遍历,使用index标识当前的深度,放入对应的List当中就可以了 */public class Solution {    List<List<Integer>> result;    public void dfs(int index,TreeNode root){        if(root==null)            return ;        if(result.size()<=index){            result.add(new ArrayList<Integer>());        }        result.get(index).add(root.val);        dfs(index+1,root.left);        dfs(index+1,root.right);    }    public List<List<Integer>> levelOrder(TreeNode root) {        result=new ArrayList<List<Integer>>();        dfs(0,root);        return result;    }}
0 0
原创粉丝点击