标签:
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] ]
这个题目很有意思。是要你从尾部到顶部,从左到右,然后输出一个内容是一个<int>容器的容器。
1 /** 2 * Definition for binary tree 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8 * }; 9 */ 10 class Solution { 11 public: 12 vector<vector<int> > out;//新建要返回的容器 13 void levelTraval(vector<TreeNode* >& level) 14 { 15 if(level.size() > 0) 16 { 17 vector<TreeNode*> nextLevel; 18 for(int i = 0; i < level.size(); i++) 19 { 20 if(level[i]->left) 21 nextLevel.push_back(level[i]->left); 22 if(level[i]->right) 23 nextLevel.push_back(level[i]->right); 24 } 25 levelTraval(nextLevel); 26 vector<int> val; 27 for(int i = 0; i < level.size(); i++) 28 val.push_back(level[i]->val); 29 out.push_back(val); 30 } 31 } 32 vector<vector<int> > levelOrderBottom(TreeNode *root) { 33 // Start typing your C/C++ solution below 34 // DO NOT write int main() function 35 out.clear(); 36 vector<TreeNode*> v; 37 if(root != NULL) 38 { 39 v.push_back(root); 40 levelTraval(v); 41 } 42 return out; 43 } 44 };
leetcode:Binary Tree Level Order Traversal II
标签:
原文地址:http://www.cnblogs.com/zongmeng/p/4458543.html