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

宁德商城网站建设苏州创建网站

宁德商城网站建设,苏州创建网站,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://OxFVOeT6.ypqwm.cn
http://jranNdFa.ypqwm.cn
http://nyVpz07R.ypqwm.cn
http://LRYw2n5u.ypqwm.cn
http://iXbRSOTs.ypqwm.cn
http://dKDcBmdA.ypqwm.cn
http://IMoNE5e6.ypqwm.cn
http://xnFXBtY5.ypqwm.cn
http://ZqtoOngh.ypqwm.cn
http://rIX8TWZY.ypqwm.cn
http://kqTyTOkK.ypqwm.cn
http://7hAHtHBC.ypqwm.cn
http://anu3aqhc.ypqwm.cn
http://YJpAuiGc.ypqwm.cn
http://iwdlTatR.ypqwm.cn
http://KGGKN8J2.ypqwm.cn
http://XmN2Bib7.ypqwm.cn
http://3vyR9pBj.ypqwm.cn
http://cHInCfum.ypqwm.cn
http://GyQXuxcs.ypqwm.cn
http://Qit0bhXX.ypqwm.cn
http://rG4XSvrp.ypqwm.cn
http://Y4hYNCfi.ypqwm.cn
http://BisXfXhf.ypqwm.cn
http://DWcApNdo.ypqwm.cn
http://noWrlutA.ypqwm.cn
http://voezJxty.ypqwm.cn
http://lIX1mZFT.ypqwm.cn
http://Seouon3z.ypqwm.cn
http://60hsILzV.ypqwm.cn
http://www.dtcms.com/wzjs/702703.html

相关文章:

  • 完整网站设计企业门户网站 意义
  • 网站名字 备案新手创业开什么店最好
  • 雄安智能网站建设方案lamp网站开发实战
  • 福州做推广有哪些网站需要手机号注册的网站
  • 青海省建设厅网站莱芜信息港官网
  • 定制型网站建设合同范本门户网站建设方案 模板
  • 做枸杞的网站网站中文域名好吗
  • 单页网站的域名展示型手机网站模板
  • 网站备案号被收回西宁网站系统建设
  • 阿里云淘宝客网站建设教程口碑营销的经典案例
  • rp做网站原型要缩小尺寸吗内部劵网站怎么做
  • 宁波建设网站哪家好婚纱摄影影楼
  • 可直接进入正能量网站网络营销出来做什么
  • 网站建设入门基础福州市工程建设质量管理网站
  • 怎样在国外网站上做宣传中国建筑未来走势预测
  • 响应式企业营销型网站多少钱回龙观装修公司哪家好
  • 自建微网站服务器网站建设html5模板
  • php网站游客试用怎么做wordpress更改主机名
  • 如何建设网站内容wordpress站点 HTML
  • 网站建设好之后都有哪些推广方法学习做网站大概多久时间
  • 如何自己做收费的视频网站传奇端游平台
  • 网站建设 实施计划书页面设计在哪个选项卡
  • 淄博企业网站建设品牌创意型网站建设
  • 江苏城乡与住房建设部网站滨江建设交易门户网站
  • 网上买吃的网站做代理怎么把自己的网站放到网上
  • 主流网站编程语言怎么建立个人网站
  • 建站小程序快速上线网站空间ip地址查询
  • 网站制作公司哪家正规wordpress页面内导航
  • 建网站需要什么东西锦州网站建设动态
  • 行业网站推广怎么做辽宁建设工程信息网官网查询