(C++实现)从上往下打印出二叉树的每个节点,同层节点从左至右打印。
Posted Olittlestone
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(C++实现)从上往下打印出二叉树的每个节点,同层节点从左至右打印。相关的知识,希望对你有一定的参考价值。
/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/ class Solution { public: vector<int> PrintFromTopToBottom(TreeNode* root) { vector<int> a; queue<TreeNode *> tree; if(root==NULL)return a; TreeNode* r; tree.push(root); while(tree.size()){ r=tree.front(); a.push_back(r->val); if(r->left!=NULL){ tree.push(r->left); } if(r->right!=NULL){ tree.push(r->right); } tree.pop(); } return a; } };
思路是:将这个树的根结点放到队列中,然后出队列,将其左孩子和右孩子分别放到队列中,然后再重复这样的工作,每出队列一个,就将这个队列的左孩子和右孩子进队列。依次循环。直到遍历完所有的结点。
以上是关于(C++实现)从上往下打印出二叉树的每个节点,同层节点从左至右打印。的主要内容,如果未能解决你的问题,请参考以下文章