剑指 Offer 32 - I. 从上到下打印二叉树
题目内容
从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。
例如:
1 2 3 4 5 6 7 8 9 10 11
| 给定二叉树: [3,9,20,null,null,15,7],
3 / \ 9 20 / \ 15 7 返回:
[3,9,20,15,7]
|
提示:
解法一:层次遍历
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| /** * 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> res; queue<TreeNode*> que; if(!root){return {};} que.push(root); while(!que.empty()){ TreeNode* node = que.front(); que.pop(); res.push_back(node->val); if(node->left)que.push(node->left); if(node->right)que.push(node->right); } return res; } };
|
结果:
1 2 3 4 5 6 7 8 9 10
| 执行用时: 4 ms , 在所有 C++ 提交中击败了 67.39% 的用户 内存消耗: 11.8 MB , 在所有 C++ 提交中击败了 47.37% 的用户
|