面试题 04.03. 特定深度节点链表
https://leetcode-cn.com/problems/list-of-depth-lcci/
这道题比较简单,就是遍历树,广度优先,一层层的遍历,唯一需要注意的是,如何定义到了第几层,做法就是在每一层结束,下一层开始,加入一个标识符。
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
vector<ListNode*> listOfDepth(TreeNode* tree) {
vector<ListNode*> alist;
if (tree != NULL)
{
queue<TreeNode*> nodequeue;
ListNode* plnode = NULL;
nodequeue.push(tree);
nodequeue.push(NULL);
TreeNode * tnode = NULL;
int tlevel = 0;
while (!nodequeue.empty())
{
tnode = nodequeue.front();
nodequeue.pop();
if (tnode == NULL)
{
tlevel++;
if (nodequeue.empty())
{
break;
}
plnode = NULL;
nodequeue.push(NULL);
continue;
}
else
{
if (plnode == NULL)
{
plnode = new ListNode(0);
plnode->val = tnode->val;
alist.emplace_back(plnode);
}
else
{
plnode->next = new ListNode(0);
plnode = plnode->next;
plnode->val = tnode->val;
}
}
if (tnode->left != NULL)
{
nodequeue.push(tnode->left);
}
if (tnode->right != NULL)
{
nodequeue.push(tnode->right);
}
}
}
return alist;
}
};
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏