当前位置: 首页 > news >正文

海南电子商务网站做网站需要哪些成本

海南电子商务网站,做网站需要哪些成本,正规的网站制作电话多少,织梦网站修改使用教程题目: 给定一棵二叉树,设计一个算法,创建含有某一深度上所有节点的链表(比如,若一棵树的深度为 D,则会创建出 D 个链表)。返回一个包含所有深度的链表的数组。 示例: 输入&#xf…

题目:

给定一棵二叉树,设计一个算法,创建含有某一深度上所有节点的链表(比如,若一棵树的深度为 D,则会创建出 D 个链表)。返回一个包含所有深度的链表的数组。

示例:

输入:[1,2,3,4,5,null,7,8]1/  \ 2    3/ \    \ 4   5    7/8输出:[[1],[2,3],[4,5,7],[8]]

思路:

  1. 队列辅助层次遍历:使用一个队列来处理树的层次遍历,将每一层节点逐一入队和出队。
  2. 链表构建:对于每一层,创建一个单独的链表,逐一添加节点到链表末尾。
  3. 结果存储:将每层的链表存入结果数组中,并记录链表数量。

代码如下:(不得不说,C语言真的是麻烦死了)

不懂的可以在评论区问我噢~

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     struct TreeNode *left;*     struct TreeNode *right;* };*/
/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/
/*** Note: The returned array must be malloced, assume caller calls free().*/
// Queue node definition for BFS
struct QueueNode {struct TreeNode *treeNode;struct QueueNode *next;
};// Queue structure for BFS
struct Queue {struct QueueNode *front;struct QueueNode *rear;
};// Function to create a new queue
struct Queue* createQueue() {struct Queue *queue = (struct Queue*)malloc(sizeof(struct Queue));queue->front = queue->rear = NULL;return queue;
}// Enqueue operation
void enqueue(struct Queue *queue, struct TreeNode *treeNode) {struct QueueNode *newNode = (struct QueueNode*)malloc(sizeof(struct QueueNode));newNode->treeNode = treeNode;newNode->next = NULL;if (queue->rear) {queue->rear->next = newNode;}queue->rear = newNode;if (!queue->front) {queue->front = newNode;}
}// Dequeue operation
struct TreeNode* dequeue(struct Queue *queue) {if (!queue->front) return NULL;struct QueueNode *temp = queue->front;struct TreeNode *treeNode = temp->treeNode;queue->front = queue->front->next;if (!queue->front) {queue->rear = NULL;}free(temp);return treeNode;
}// Check if the queue is empty
int isQueueEmpty(struct Queue *queue) {return queue->front == NULL;
}// Main function
struct ListNode** listOfDepth(struct TreeNode* tree, int* returnSize) {if (!tree) {*returnSize = 0;return NULL;}// Allocate memory for result arraystruct ListNode** result = (struct ListNode**)malloc(1000 * sizeof(struct ListNode*)); // Assuming max depth is 1000*returnSize = 0;struct Queue *queue = createQueue();enqueue(queue, tree);while (!isQueueEmpty(queue)) {int levelSize = 0;struct ListNode *levelHead = NULL, *levelTail = NULL;struct Queue *tempQueue = createQueue();// Process all nodes at the current levelwhile (!isQueueEmpty(queue)) {struct TreeNode *currentNode = dequeue(queue);struct ListNode *newListNode = (struct ListNode*)malloc(sizeof(struct ListNode));newListNode->val = currentNode->val;newListNode->next = NULL;if (!levelHead) {levelHead = newListNode;} else {levelTail->next = newListNode;}levelTail = newListNode;levelSize++;if (currentNode->left) enqueue(tempQueue, currentNode->left);if (currentNode->right) enqueue(tempQueue, currentNode->right);}// Append the level's linked list to the resultresult[*returnSize] = levelHead;(*returnSize)++;// Swap queuesstruct Queue *swapTemp = queue;queue = tempQueue;free(swapTemp);}// Cleanupfree(queue);return result;
}

http://www.yayakq.cn/news/858548/

相关文章:

  • 购物网站主页设计图ai论文生成器免费
  • 开发手机端网站模板腾云网
  • 开源免费企业网站系统个人模板建站
  • 浏览器显示不安全网站建设怎么介绍自己做的企业网站页面
  • 网站建设推广公司价格wordpress获取链接
  • 网站自适应怎么做网站建设电销话术
  • 做任务能赚钱的网站免费下载网站模板
  • dedecms做网站和thinkphp辽宁省建设厅科技中心网站
  • 福建省机关效能建设网站地方门户模板
  • 网站建设中广告图片尺寸北京软件app开发公司
  • 成品网站1688入门网app开发公司 上海
  • 后台控制网站关键词设置的详细代码工商企业查询网
  • 做电影网站服务器wordpress菜单页和文章页路径不同
  • 阿里巴巴国际网站建设网站建设优化服务价位
  • 个人在线网站推广备案核验单 网站类型
  • 一站式网站开发江西星子网
  • 专业的建设网站服务郑州企业健康码二维码怎么弄就是放在门口让人扫
  • 网站模板上传教程千旺crm客户管理系统
  • 成品免费网站源码开微信公众号流程
  • 建网站代理哪个产品如何做网站地图
  • 网站建设采购公告wordpress 整站音乐
  • 网站开发环境安装程序wordpress更改绑定域名
  • 做封面的地图网站自媒体发布平台
  • 佛山顺德容桂做网站的公司网站怎么集成支付宝
  • 北苑网站建设公司.net网站开发实训代码
  • 短故事网站模板做网站是58好还是百度好
  • 做网站的机构网上最畅销的10种商品
  • 河南网站建设电话网站建设中常用的技术有哪些
  • 北京网站编程培训中国建设银行官网登录首页
  • 自己电脑做局域网网站服务器在线动画手机网站模板下载安装