Leetcode-Binary Tree Level Order Traversal II
2014-10-23 09:50
357 查看
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
return its bottom-up level order traversal as:
分析:在层次遍历的基础上增加了对结果的一个翻转。
AC代码:
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] ]
分析:在层次遍历的基础上增加了对结果的一个翻转。
AC代码:
import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import java.util.Queue; public class Solution { public List<List<Integer>> levelOrderBottom(TreeNode root) { List<List<Integer>> answerList = new ArrayList<List<Integer>>(); Queue<TreeNode> q = new LinkedList<TreeNode>(); TreeNode nextLevelStarter; q.add(root); if( root == null ) return answerList; while( !q.isEmpty() ){ TreeNode currentNode = q.peek(); nextLevelStarter = null; List<Integer> thisLevelList = new ArrayList<Integer>(); //find nextLevelStart while( q.peek() != nextLevelStarter && q.isEmpty() == false ){ currentNode = q.remove(); if( nextLevelStarter == null ){ if( currentNode.left != null ) nextLevelStarter = currentNode.left; else if( currentNode.right != null ) nextLevelStarter = currentNode.right; } //add to the thisLevelList thisLevelList.add(currentNode.val); if( currentNode.left != null ) q.add(currentNode.left); if( currentNode.right != null ) q.add(currentNode.right); } answerList.add(thisLevelList); } //reverse the result list List<List<Integer>> reverseAnswerList = new ArrayList<List<Integer>>(); for( int i = answerList.size()-1; i >= 0 ; i-- ){ reverseAnswerList.add(answerList.get(i)); } return reverseAnswerList; } }
相关文章推荐
- [Leetcode]Binary Tree Level Order Traversal II
- [LeetCode] Binary Tree Level Order Traversal II
- Binary Tree Level Order Traversal II --leetcode C++
- [LeetCode]Binary Tree Level Order Traversal II,解题报告
- 【LeetCode】107 - Binary Tree Level Order Traversal II
- Binary Tree Level Order Traversal II(LeetCode)
- leetcode107——Binary Tree Level Order Traversal II
- Binary Tree Level Order Traversal II-LeetCode
- LeetCode Binary Tree Level Order Traversal II
- [LeetCode]Binary Tree Level Order Traversal II
- LeetCode力扣之107. Binary Tree Level Order Traversal II
- leetCode No.107 Binary Tree Level Order Traversal II
- Leetcode: Binary Tree Level Order Traversal II 理解分析
- LeetCode(26)-Binary Tree Level Order Traversal II
- LeetCode Binary Tree Level Order Traversal II
- Binary Tree Level Order Traversal II [LeetCode]
- LeetCode Binary Tree Level Order Traversal II
- LeetCode: 107_Binary Tree Level Order Traversal II | 二叉树自底向上的层次遍历 | Easy
- LeetCode 之 Binary Tree Level Order Traversal II
- [leetcode-107]Binary Tree Level Order Traversal II(java)