剑指 Offer 32 -I.从上到下打印二叉树

题目描述

 

 

 

解法

思路:使用队列实现广度优先遍历(层序遍历)。

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    vector<int> levelOrder(TreeNode* root) {
        vector<int> vec;
        if (root == NULL) { // 初始判空处理
            return vec;
        }

        queue<TreeNode*> que; // 创建队列
        que.push(root); // 加入根节点

        while (!que.empty()) { // 循环队列不为空
            TreeNode* temp = que.front(); // 队首
            que.pop(); // 弹出队首
            vec.push_back(temp->val);
            if (temp->left) { // 左子树不为空就入队
                que.push(temp->left);
            }
            if (temp->right) { // 右子树不为空就入队
                que.push(temp->right);
            }
        }
        return vec;
    }
};

            

 

参考:https://leetcode.cn/problems/cong-shang-dao-xia-da-yin-er-cha-shu-lcof/solution/jian-zhi-offerlian-xi-c-t13-by-zealous-g-1qfb/

 

posted @ 2023-03-13 21:30  盏茶  阅读(9)  评论(0)    收藏  举报