LeetCode-Binary Tree Level Order Traversal II
2013-09-22 16:42
477 查看
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:
confused what
OJ's Binary Tree Serialization:
The serialization of a binary tree follows a level order traversal, where '#' signifies a path terminator where no node exists below.
Here's an example:
The above binary tree is serialized as
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], ]
confused what
"{1,#,2,3}"means? > read more on how binary tree is serialized on OJ.
OJ's Binary Tree Serialization:
The serialization of a binary tree follows a level order traversal, where '#' signifies a path terminator where no node exists below.
Here's an example:
1 / \ 2 3 / 4 \ 5
The above binary tree is serialized as
"{1,2,3,#,#,4,#,#,5}".
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: vector<vector<int> > levelOrderBottom(TreeNode *root) { // Start typing your C/C++ solution below // DO NOT write int main() function queue<TreeNode*> q; vector<vector<int> >ret; if(root==NULL)return ret; q.push(root); int level=0; ret.resize(level+1); int count=1; int nextCount=0; while(q.size()>0){ if(count==0){ level++; ret.resize(level+1); count=nextCount; nextCount=0; } TreeNode* current=q.front(); ret[level].push_back(current->val); q.pop(); if(current->left!=NULL){ q.push(current->left); nextCount++; } if(current->right!=NULL){ q.push(current->right); nextCount++; } count--; } int half=ret.size()/2; for(int i=0;i<half;i++){ vector<int> temp=ret[i]; ret[i]=ret[ret.size()-i-1]; ret[ret.size()-i-1]=temp; } return ret; } };
相关文章推荐
- LEETCODE--Binary Tree Level Order Traversal II
- Leetcode--Binary Tree Level Order Traversal II
- leetcode第一刷_Binary Tree Level Order Traversal II
- LeetCode | Binary Tree Level Order Traversal II
- leetcode: Binary Tree Level Order Traversal II
- LeetCode--No.107--Binary Tree Level Order Traversal II
- leetCode解题报告之Binary Tree Level Order Traversal II,I(二叉树层次遍历)
- LeetCode-Binary Tree Level Order Traversal II
- 【leetcode】Binary Tree Level Order Traversal II
- LeetCode: Binary Tree Level Order Traversal II
- leetcode -- Binary Tree Level Order Traversal & II-- 重点
- [C++]LeetCode: 32 Binary Tree Level Order Traversal II
- [leetcode-107]Binary Tree Level Order Traversal II(java)
- 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
- LeetCode107 Binary Tree Level Order Traversal II
- Leetcode-Binary Tree Level Order Traversal II