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

研究网站平台建设工作动态wordpress获取当前页面链接

研究网站平台建设工作动态,wordpress获取当前页面链接,旅游电子商务网络营销是什么,寻找装修公司题目: 给定一棵二叉树,设计一个算法,创建含有某一深度上所有节点的链表(比如,若一棵树的深度为 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/296082/

相关文章:

  • 网站 做实名认证nginx wordpress 伪静态
  • 腾讯云学生怎么做网站的网站内容设计主要包括
  • 文昌市建设局网站在线网站建设系统
  • PHP网站开发都需要学什么卖鱼的亲戚要我帮忙做网站
  • 网站建设倒计时代码wordpress图片二级域名
  • 在线旅游网站开发分析报告世界经理人网站手机版
  • 食品包装袋设计天津网站建设优化
  • 佛山网站建设公司有哪些?重庆专业网站建设公司
  • 医疗网站建设计划书苏州市工程造价信息网
  • 深圳电商网站建设百度在线使用
  • 镇江网站搜索排名网站建设飠金手指下拉
  • 网站怎么换空间商推广竞价账户托管
  • 包装设计十大网站二手房装修
  • 网站姐姐做床戏网站旅游网站策划书模板
  • 网站模板怎么修改教程东莞建设网站公司
  • 做建筑材料的网站有哪些网站设计介绍怎么写
  • 如何做商业网站推广wordpress 网站关键词设置
  • 四川省工程项目建设投标发布网站设计头条
  • 教育学校网站建设前端移动网站开发
  • 重庆网站制作设计品牌建设 示范引领
  • 海南网站建设找哪家做网站需要具备哪些条件
  • 网站建设管理工作大型网站建设部署方案
  • 工业设计网站官网宜宾seo网站建设
  • 域名 备案 网站吉林平台网站建设推荐
  • 手机网站模板 商城用万网做网站
  • 烟台网站建设方案推广鄂州建设网站
  • 做宠物网站导航应该写什么字山西省
  • 网站建设入什么费用h5做网站
  • 做网站有哪些费用网站建设比较好公司
  • 做seo为什么要了解网站方案策划