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

遂宁商城网站建设报价网上国网app官方下载

遂宁商城网站建设报价,网上国网app官方下载,wordpress转化为中文版,德清县住房和城乡建设局网站LeetCode 116 和 117 都是关于填充二叉树节点的 next 指针的问题,但它们的区别在于 树的类型 不同,117与 116 题类似,但给定的树是 普通二叉树(不一定完全填充),即某些节点可能缺少左或右子节点。 树的结构…

LeetCode 116 和 117 都是关于填充二叉树节点的 next 指针的问题,但它们的区别在于 树的类型 不同,117与 116 题类似,但给定的树是 普通二叉树(不一定完全填充),即某些节点可能缺少左或右子节点。

  • 树的结构 不保证是完美的,可能缺失某些子节点。

  • 因此,116 题的简单递归方法 不能直接适用,需要更通用的解法(如 BFS + 链表连接 或 逐层处理)。

  • 需要额外处理 子节点缺失 的情况,导致代码比 116 题复杂。

116 题的 BFS(层级遍历) 解法可以直接用于 117 题,因为 BFS 不依赖于树的完美结构,而是 逐层遍历所有节点,因此适用于 任意二叉树(包括普通二叉树和完美二叉树)。

/*
// Definition for a Node.
class Node {
public:int val;Node* left;Node* right;Node* next;Node() : val(0), left(NULL), right(NULL), next(NULL) {}Node(int _val) : val(_val), left(NULL), right(NULL), next(NULL) {}Node(int _val, Node* _left, Node* _right, Node* _next): val(_val), left(_left), right(_right), next(_next) {}
};
*/class Solution {
public:Node* connect(Node* root) {queue<Node*> q;if(root == NULL) return root;Node* node;Node* prenode;q.push(root);while(!q.empty()){int size = q.size();for(int i = 0; i < size; i++){if(i == 0){prenode = q.front();q.pop();node = prenode;}else{node = q.front();q.pop();prenode->next = node;prenode = prenode->next;}if (node->left) q.push(node->left);if (node->right) q.push(node->right);}node->next = NULL;}return root;}
};

递归:

116 题的递归解法利用了 完美二叉树的对称性

117 题的树可能 缺少左或右子节点,比如:

  • root.left 存在,但 root.right 不存在,此时 root.left.next 不能直接指向 root.right(因为 root.right 是 None)。

  • root.next 的子节点可能不存在,导致 root.right.next = root.next.left 失效。

117 题的递归解法(适用于普通二叉树)

由于树的结构不确定,我们需要:

  1. 找到当前节点的 next 节点的第一个有效子节点(可能是 next.left 或 next.right)。

  2. 递归处理右子树,再处理左子树(因为 next 链是从左到右建立的,必须先确保右侧的 next 关系已经建立)。

class Solution {
public:Node* connect(Node* root) {if (!root) return nullptr;Node* curr = root;    // 当前层的头节点Node dummy(0);        // 虚拟头节点,用于连接下一层Node* prev = &dummy;  // 用于遍历下一层while (curr) {// 遍历当前层,连接下一层if (curr->left) {prev->next = curr->left;prev = prev->next;}if (curr->right) {prev->next = curr->right;prev = prev->next;}curr = curr->next; // 移动到当前层的下一个节点// 如果当前层遍历完毕,进入下一层if (!curr) {curr = dummy.next;dummy.next = nullptr;prev = &dummy;}}return root;}
};


文章转载自:

http://sEBBsbVg.bpmfr.cn
http://xdVgf6vL.bpmfr.cn
http://PQcgjo9o.bpmfr.cn
http://ZRBwr62w.bpmfr.cn
http://YSQXsTJI.bpmfr.cn
http://P6Ll6e2S.bpmfr.cn
http://u06eTU1G.bpmfr.cn
http://akf8hB13.bpmfr.cn
http://7rYbe4G4.bpmfr.cn
http://KUTCtu9s.bpmfr.cn
http://WDD9VCYf.bpmfr.cn
http://WV1vGcfM.bpmfr.cn
http://FurIxlSH.bpmfr.cn
http://Ug997Ol4.bpmfr.cn
http://BoWyGjuv.bpmfr.cn
http://fSHTvjS1.bpmfr.cn
http://H0GMKVEu.bpmfr.cn
http://eHJRzW6b.bpmfr.cn
http://L0MCQK9J.bpmfr.cn
http://wZbMdRJu.bpmfr.cn
http://wgCiF73U.bpmfr.cn
http://BygjWO63.bpmfr.cn
http://ljvGB4vy.bpmfr.cn
http://0io2PLkh.bpmfr.cn
http://hl2QmrQH.bpmfr.cn
http://hmvvpkMZ.bpmfr.cn
http://GR6nyo2I.bpmfr.cn
http://d2GNgPI6.bpmfr.cn
http://syI1hCK2.bpmfr.cn
http://zYYKAws1.bpmfr.cn
http://www.dtcms.com/wzjs/722707.html

相关文章:

  • 如何来建设网站有什么展厅设计做的好的网站
  • 网站建设都包括哪些内容青岛房产网首页
  • 国外做仿牌网站潜江做网站
  • 做网站上线一般要多久2345网站登录
  • 淮阴区建设局网站mvc 做网站
  • php 信息分类网站开发做直播app的公司
  • 网站如何做关健词收录平面设计多久能学会
  • 网站对接如何做有哪些制作视频的软件
  • 网站色调代号网站建设基础服务报价
  • 书店手机网站模板建设局特种作业网站
  • 怎么搞一个网站平台洛阳网站建设联系方式
  • 长沙网站开发公司南部建设局网站
  • 福建住房和城乡建设部网站首页wordpress怎么设置tdk
  • 临沂搜索引擎网站推广工程造价信息网查询
  • 怎么利用爬虫技术 提高网站排名英语网站案例
  • 网站中页面链接怎么做的南宁市建设信息网站
  • 阿里云的虚拟主机用什么做网站织梦商城模板
  • 做企业网站所要注意什么wordpress多主题插件下载
  • 如何用jeecg建设网站win7建网站教程
  • 中文网站搭建网站界面美观度
  • 百度站长网站地图郑州网站建设哪家专业
  • 库尔勒谁在做电商网站建设宝塔window搭建wordpress
  • 电子商务的网站怎么做WordPress大前端DUX5.1
  • 免费 网站建设跨境电商排名前十名品牌
  • 怎么在百度制作自己的网站网络推广技术外包
  • 金华网站制作价格建筑工程网站免费
  • 广州做网站公司哪家好哪个网站可以免费看小说不收费
  • 网站托管平台wordpress只显示文字
  • 如何查询某个网站的设计公司网站开发core文件作用
  • 易语言网站做软件教你做面食的网站