《剑指offer》把二叉树打印成多行

【 声明:版权所有,转载请标明出处,请勿用于商业用途。 联系信箱:libin493073668@sina.com】

题目链接:?rp=3&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

题目描述从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。思路考虑到这是一个宽度优先搜索的问题,要求同一层的结点在数组中也在同一行,所以我们每次遍历玩一层的结点的时候,我们还需要保存期路径,这就需要两个队列来完成。

/*struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right;TreeNode(int x) :val(x), left(NULL), right(NULL) {}};*/class Solution{public:vector<vector<int> > Print(TreeNode* pRoot){vector<vector<int> > ans;vector<int> path;if(pRoot==nullptr)return ans;queue<TreeNode*> Q,tmp;Q.push(pRoot);while(!Q.empty()){while(!Q.empty()){TreeNode *pNode = Q.front();path.push_back(pNode->val);Q.pop();if(pNode->left)tmp.push(pNode->left);if(pNode->right)tmp.push(pNode->right);}ans.push_back(path);path.clear();while(!tmp.empty()){Q.push(tmp.front());tmp.pop();}}return ans;}};

版权声明:本文为博主原创文章,如果转载,请注明出处

,渐渐少了联络,友谊就变的淡了,所以,抽点时间,联络朋友一起聊聊天,

《剑指offer》把二叉树打印成多行

相关文章:

你感兴趣的文章:

标签云: