剑指offer之面试题23:从上往下打印二叉树
题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印。(BFS)
思路:
根据题目,想到层序遍历时,按照从上到下,从左到右的访问每一个结点,用到一个辅助队列(先进先出才能保证从左到右的访问)。
代码:
/*structTreeNode{intval;structTreeNode*left;structTreeNode*right;TreeNode(intx):val(x),left(NULL),right(NULL){}};*/classSolution{public:vector<int>PrintFromTopToBottom(TreeNode*root){//保存打印序列vector<int>v1;//先进先出queue<TreeNode*>q1;if(root==NULL){returnv1;}q1.push(root);v1.push_back(root->val);while(!q1.empty()){TreeNode*tmp=q1.front();q1.pop();if(tmp->left!=NULL){q1.push(tmp->left);v1.push_back(tmp->left->val);}if(tmp->right!=NULL){q1.push(tmp->right);v1.push_back(tmp->right->val);}}returnv1;}};
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。