【LeetCode】107.Binary Tree Level Order Traversal II(Easy)解题报告
2018-03-17 09:51
483 查看
【LeetCode】107.Binary Tree Level Order Traversal II(Easy)解题报告
题目地址:https://leetcode.com/problems/binary-tree-level-order-traversal-ii/description/
题目描述:
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).
Solution1:
Solution2:
Date:2018年3月17日
题目地址:https://leetcode.com/problems/binary-tree-level-order-traversal-ii/description/
题目描述:
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] ]
Solution1:
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } 还是两种方法,一种遍历,第二种前序遍历实现层序遍历 time : O(n) space : O(n) */ class Solution { public List<List<Integer>> levelOrderBottom(TreeNode root) { List<List<Integer>> res = new ArrayList<>(); if(root == null) return res; Queue<TreeNode> queue = new LinkedList<>(); queue.offer(root); while(!queue.isEmpty()){ int size = queue.size(); List<Integer> list = new ArrayList<>(); for(int i=0 ; i<size ; i++){ TreeNode cur = queue.poll(); if(cur.left!=null) queue.offer(cur.left); if(cur.right!=null) queue.offer(cur.right); list.add(cur.val); } res.add(0,list); } return res; } }
Solution2:
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } 还是两种方法,一种遍历,第二种前序遍历实现层序遍历 time : O(n) space : O(n) */ class Solution { public List<List<Integer>> levelOrderBottom(TreeNode root) { List<List<Integer>> res = new ArrayList<>(); if(root == null) return res; helper(res,root,0); return res; } public static void helper(List<List<Integer>> res, TreeNode root,int level){ if(root==null) return; if(level>=res.size()){ res.add(0,new ArrayList<>()); } res.get(res.size()-level-1).add(root.val); helper(res,root.left,level+1); helper(res,root.right,level+1); } }
Date:2018年3月17日
相关文章推荐
- 【LeetCode】119.Pascal's Triangle II(Easy)解题报告
- 【LeetCode】88.Merge Sorted Array(easy)解题报告
- LeetCode解题报告 169. Majority Element [easy]
- LeetCode解题报告 101. Symmetric Tree [easy]
- 【LeetCode】111.Minimum Depth of Binary Tree(Easy)解题报告
- 【LeetCode】404.Sum of Left Leaves(Easy)解题报告
- 【LeetCode】141.Linked List Cycle(easy)解题报告
- 【LeetCode】104.Maximum Depth of Binary Tree(Easy)解题报告
- LeetCode解题报告 112. Path Sum [easy]
- 【LeetCode】110. Balanced Binary Tree(Easy)解题报告
- 【LeetCode】121.Best Time to Buy and Sell Stock(Easy)解题报告
- LeetCode】101.Symmetric Tree(Easy)解题报告
- 【LeetCode】122.Best Time to Buy and Sell Stock II(Easy)解题报告
- 【LeetCode】206.Reverse Linked List(Easy)解题报告
- 【LeetCode】169. Majority Element(Easy)解题报告
- 【LeetCode】27.Remove Element(Easy)解题报告
- LeetCode解题报告 107. Binary Tree Level Order Traversal II [easy]
- 【LeetCode】617.Merge Two Binary Trees(Easy)解题报告
- LeetCode解题报告 102. Binary Tree Level Order Traversal [easy]
- 【LeetCode】108.Convert Sorted Array to Binary Search Tree(Easy)解题报告