剑指Offer刷题(把二叉树打印成多行)
一.题目描述二.代码(C++)三.提交记录四.备注
一.题目描述
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
二.代码(C++)
class Solution
{
public
:
vector
<vector
<int> > Print(TreeNode
* pRoot
)
{
vector
<vector
<int> > v
;
if(!pRoot
)
return v
;
queue
<TreeNode
*> dq
;
dq
.push(pRoot
);
while(!dq
.empty())
{
vector
<int> tmp
;
int n
=dq
.size();
for(int i
=0;i
<n
;i
++)
{
TreeNode
* tp
=dq
.front();
dq
.pop();
tmp
.push_back(tp
->val
);
if(tp
->left
)
dq
.push(tp
->left
);
if(tp
->right
)
dq
.push(tp
->right
);
}
v
.push_back(tmp
);
}
return v
;
}
};
三.提交记录
四.备注
层次遍历,每层的节点保存在一个队列中。
转载请注明原文地址:https://ipadbbs.8miu.com/read-26984.html