题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
牛客网题目链接
解题思路
此题属于队列的应用,具体解题过程为:
遇到结点先压入队列中如果其有左右子结点,则再将左右子结点存在队列中(置于队尾)再从队列中按序取出结点并输出结果,并进行相同的操作,直至队列为空位置
代码实现
class Solution {
public:
vector
<int> PrintFromTopToBottom(TreeNode
* root
) {
vector
<int>res
;
if(!root
)return res
;
queue
<TreeNode
*> node
;
node
.push(root
);
TreeNode
*tmp
;
while(!node
.empty()){
tmp
=node
.front(),res
.push_back(tmp
->val
),node
.pop();
if(tmp
->left
)node
.push(tmp
->left
);
if(tmp
->right
)node
.push(tmp
->right
);
}
return res
;
}
};
运行时间:
2ms
占用内存:
504k