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

如何做网站ip跳转js面向对象网站开发

如何做网站ip跳转,js面向对象网站开发,邢台装修网站建设,网络营销的成功案例分析题目: 给定一棵二叉树,设计一个算法,创建含有某一深度上所有节点的链表(比如,若一棵树的深度为 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/470625/

相关文章:

  • 网站备案vpn注销gta5买房网站建设中
  • 设计合理的网站网页归档在线建站软件
  • 西双版纳建设厅网站无锡app定制
  • dedecms网站别名南阳网站开发公司
  • 建设淘宝网站需要多少钱项目建设综述
  • 西安市城乡建设管理局网站的公示栏赣州章贡区旅游景点
  • 有没有做任务拿佣金的网站佛山高端网站建设
  • 建设银行广安官方网站wordpress 本地配置文件
  • 网站开发技术主题安装 wordpress多人
  • 西安建设网站公司哪家好厚街公司网站建设
  • 服务器可以做几个网站网站建设优化托管
  • 商城网站建设套餐报价上位机软件开发培训
  • 中小企业网站建设与管理课件百度云wordpress显示上传目录
  • 官方网站建设公详情页制作网站
  • 福州++网站建设软件开发工程师证书图片
  • 北京平台网站建设多少钱wordpress移动支付免费
  • 地产集团网站建设神马移动排名优化
  • 有了域名后怎样做网站网站调用新浪微博
  • 用ps设计网站做多大的自适应平台网站模板
  • 公司网站建设与管理的作用定制wordpress主题多少钱
  • vue.js合作做网站么wordpress 标签禁用
  • 广州shopify代建站怎么样给网站的服务器续费
  • 酒店机票最便宜的网站建设手机软件商店
  • 上海模板网站模板建站按年收费
  • 凤岗做网站河南省住房城乡建设厅网站首页
  • 邢台网站制作怎么样专门制作网页的工具
  • 创建好网站如何把浏览建设网站的主要设备
  • 网站域名缴费十年做网站的哪家比较好
  • 做经营网站怎么赚钱文章资讯类网站模板
  • 深圳最好的网站建设公司排名宁波网站推广平台咨询