107. 二叉树的层次遍历 II
给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)
例如:
给定二叉树 [3,9,20,null,null,15,7]
,
3/ \9 20/ \15 7
返回其自底向上的层次遍历为:
[[15,7],[9,20],[3]
]
vector<vector<int>> levelOrderBottom(TreeNode* root) {vector<vector<int>> ans;vector<int>cur_lev;if(NULL &#61;&#61; root)return ans;queue<TreeNode *>q;q.push(root);while(!q.empty()){int cnt &#61; q.size();while(cnt){TreeNode* Ntop &#61; q.front();q.pop();cur_lev.push_back(Ntop->val);if(NULL !&#61; Ntop->left)q.push(Ntop->left);if(Ntop->right)q.push(Ntop->right);cnt--;}ans.push_back(cur_lev);cur_lev.clear();}reverse(ans.begin(),ans.end());return ans;
}