class Solution {
public:
vector<vector<int>> levelOrder(TreeNode* root) {
queue<TreeNode*> que;
vector<vector<int>> result;
if(root!=nullptr) que.push(root);
while(!que.empty()){
int size=que.size();
vector<int> vac;
TreeNode* tmp;
while(size--){
tmp=que.front();
vac.push_back(tmp->val);
que.pop();
if(tmp->left!=nullptr) que.push(tmp->left);
if(tmp->right!=nullptr) que.push(tmp->right);
}
result.push_back(vac);
}
return result;
}
};
与二叉树层序遍历类似的有10道:
- 102.二叉树的层序遍历
- 107.二叉树的层次遍历II
- 199.二叉树的右视图
- 637.二叉树的层平均值
- 429.N叉树的层序遍历
- 515.在每个树行中找最大值
- 116.填充每个节点的下一个右侧节点指针
- 117.填充每个节点的下一个右侧节点指针II
- 104.二叉树的最大深度
- 111.二叉树的最小深度
class Solution {
public:
TreeNode* invertTree(TreeNode* root) {
if(root==nullptr) return nullptr;
stack<TreeNode*> st;
st.push(root);
while(!st.empty()){
TreeNode* tmp=st.top();
if(tmp!=nullptr){
st.pop();
swap(tmp->left,tmp->right);
if(tmp->right!=nullptr) st.push(tmp->right);
if(tmp->left!=nullptr) st.push(tmp->left);
}
}
return root;
return root;
}
};