OFF32 层次遍历

Node* connect(Node* root) {
    if(root==NULL){
        return root;
    }
    queue<Node*> q;
    q.push(root);
    
    while(!q.empty()){
        int size=q.size();
        for(int i=0;i<size;i++){
            Node* n=q.front();
            q.pop();
           // 连接
            if (i < size - 1) {
                n->next = q.front();
            }
            // 添加新节点
            if (n->left != nullptr) {
                q.push(n->left);
            }
            if (n->right != nullptr) {
                q.push(n->right);
            }
        }

    }
    return root;

}
## 层次遍历输出节点值,看成BFS
```c++
queue<TreeNode*> q;
vector<int> ans;
vector<int> levelOrder(TreeNode* root) {
    if(root == NULL){
        return ans;
    }
    q.push(root);
    while(!q.empty()){
        TreeNode* curr=q.front();
        q.pop();
        ans.push_back(curr->val);
       // cout<<curr->val<<" ";
        if(curr->left != NULL){
            q.push(curr->left);
        }
        if(curr->right != NULL){
            q.push(curr->right);
        }
    }
    return ans;
}

每一层分别输出,每次记录层的数量

vector<vector<int>> ans;
    vector<vector<int>> levelOrder(TreeNode* root) {
        if(root == NULL){
            return ans;
        }
        queue<TreeNode*> q;
        q.push(root);
        while(!q.empty()){
            int levelLen=q.size();
            cout<<levelLen<<" ";
            vector<int> v;
            //每次记录当前层长度进行遍历
            for(int i=0;i<levelLen;i++){
                TreeNode* curr=q.front();
                if(curr->left != NULL){
                    q.push(curr->left);
                }
                if(curr->right != NULL){
                    q.push(curr->right);
                }
                v.push_back(curr->val);
                q.pop();
            }
            ans.push_back(v);

        }
        return ans;
    }
posted @   lwx_R  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示