剑指offer:面试题32 - I. 从上到下打印二叉树

题目:从上到下打印二叉树

从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。

例如:
给定二叉树: [3,9,20,null,null,15,7],

   3
   / \
  9  20
    /  \
   15   7

返回:[3,9,20,15,7]

提示:节点总数 <= 1000


解题:queue队列(先进先出)

class Solution {
public:
    vector<int> levelOrder(TreeNode* root) {
        vector<int> res;
        if(root == nullptr) return res;   //判断根节点是否为空
        
        queue<TreeNode*> que;
        que.push(root);
        while(!que.empty()) {
            TreeNode* curNode = que.front(); que.pop();
            if(curNode == nullptr) continue;
            res.push_back(curNode->val);
            if(curNode->left) que.push(curNode->left);
            if(curNode->right) que.push(curNode->right);
        }
        
        return res;
    }
};
发布了106 篇原创文章 · 获赞 113 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/qq_41598072/article/details/104560729
今日推荐