给定一棵二叉树,设计一个算法,创建含有某一深度上所有节点的链表(比如,若一棵树的深度为 D,则会创建出 D 个链表)。返回一个包含所有深度的链表的数组。
思路:二叉树的层序遍历,每一层存进链表。
vector<ListNode*> listOfDepth(TreeNode* root) {
if(!root)return {};
vector<ListNode*>res;
queue<TreeNode*>que;
que.push(root);
while(!que.empty()){
int num=que.size();
ListNode* tmp=new ListNode(0);
ListNode* list=tmp;
for(int i=0;i<num;i++){
root=que.front();
que.pop();
tmp->next=new ListNode(root->val);
tmp=tmp->next;
if(root->left)que.push(root->left);
if(root->right)que.push(root->right);
}
res.push_back(list->next);
}
return res;
}