二叉树从下至上的输出层
附上代码:
class Solution { public: vector<vector<int> > levelOrderBottom(TreeNode *root) { // IMPORTANT: Please reset any member data you declared, as // the same Solution instance will be reused for each test case. vector<vector<int>> result; result.clear(); TreeNode **seq = new TreeNode *[1000]; TreeNode **rseq = new TreeNode *[1000]; int index = 0; seq[index++] = root; while(true) { int top = index; index = 0; vector<int> tmp; tmp.clear(); for(int i = 0 ;i< top;i++) { if(seq[i] != NULL) { tmp.push_back(seq[i]->val); if (seq[i]->left != NULL) { rseq[index++] = seq[i]->left; } if (seq[i]->right != NULL) { rseq[index++] = seq[i]->right; }<br /> } } if(tmp.size() > 0) result.push_back(tmp); if(index == 0) break; for(int i = 0;i < index;i++) { seq[i] = rseq[i]; } } vector<vector<int>> ans; ans.clear(); for(int i = result.size() - 1;i >= 0;i--) { ans.push_back(result[i]); } return ans; } };