标签:
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]
]
1 class Solution { 2 public: 3 vector<vector<int> > levelOrderBottom(TreeNode* root) { 4 vector<vector<int> >ret; 5 ret.clear(); 6 if(root==NULL) 7 return ret; 8 queue<TreeNode*> Q; 9 Q.push(root); 10 Q.push(NULL); 11 vector<int> tmp; 12 while(!Q.empty()) 13 { 14 TreeNode *p=Q.front(); 15 Q.pop(); 16 if(p!=NULL) 17 { 18 tmp.push_back(p->val); 19 if(p->left) 20 Q.push(p->left); 21 if(p->right) 22 Q.push(p->right); 23 }else{ 24 if(!tmp.empty()) 25 { 26 S.push(NULL); 27 ret.push_back(tmp); 28 tmp.clear(); 29 } 30 } 31 } 32 reverse(ret.begin(),ret.end()); 33 return ret; 34 } 35 };
【leetcode】Binary Tree Level Order Traversal II
标签:
原文地址:http://www.cnblogs.com/jawiezhu/p/4481031.html