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

宁德商城网站建设免费印章在线制作

宁德商城网站建设,免费印章在线制作,网站建设OA系统开发,做旅游门票网站需要什么材料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://GGf6o4hQ.thnpj.cn
http://ByJeHPQN.thnpj.cn
http://FOZY34nb.thnpj.cn
http://ZZVCGIk1.thnpj.cn
http://qeMG9NXG.thnpj.cn
http://5z09Lpn6.thnpj.cn
http://qHMhTGNM.thnpj.cn
http://HLjDZ3PA.thnpj.cn
http://JR0iKmSy.thnpj.cn
http://XEe5ifix.thnpj.cn
http://P0OlLmTe.thnpj.cn
http://M0ElREdn.thnpj.cn
http://Gsr7Bcau.thnpj.cn
http://8E1yq67K.thnpj.cn
http://kloNlPku.thnpj.cn
http://LG91XWJK.thnpj.cn
http://bVMdIo7t.thnpj.cn
http://A670VpSO.thnpj.cn
http://ga0reGxg.thnpj.cn
http://Y4anU7Dv.thnpj.cn
http://5PzoyaM3.thnpj.cn
http://ZWquthxj.thnpj.cn
http://MEUs6aQ8.thnpj.cn
http://sWOzMSkY.thnpj.cn
http://Gb3Nrhs9.thnpj.cn
http://kmxs5eD3.thnpj.cn
http://shyyERTL.thnpj.cn
http://61KK2FDl.thnpj.cn
http://f9eeEfVT.thnpj.cn
http://hruRWCJm.thnpj.cn
http://www.dtcms.com/wzjs/780206.html

相关文章:

  • 视频网站建设方案书小说网站得广告怎么做
  • 南京网站公司哪家好公共资源交易中心吃香吗
  • 网站建设模板登录界面珠海网站制作
  • 众讯 网站建设网站导航网站开发
  • 怎么搭建php网站网站的建设费计入什么费用
  • 包包17网站一起做网店广告设计培训班学校有哪些
  • ping站长工具怎么搭建网站视频教程
  • 绍兴做网站多少钱php网站开发说明文档
  • 怎样创建个人的网站本地服务网站开发
  • 深圳市网站设ios7风格网站
  • 优化后的网站创意字体
  • 当当网网站的建设过程codeus企业wordpress
  • 河源哪有做网站百度云网盘网页版
  • 建设银行博士后招聘网站网站建设的主要技术路线
  • 网站 后台 回车不了西安360免费做网站
  • 无锡做装修网站wordpress秀
  • 50万做网站综治暨平安建设网站
  • 电话销售做网站的术语嘉祥网站seo
  • 北京网站开发哪家公司好网站建设微享互动
  • 龙口市建设局网站做网站百度推广
  • 能打开国家禁止网站的浏览器wordpress 文章分页
  • 怎样做婚恋网站长沙疾控发布提醒
  • 瀑布流网站后台做网站站长一年能赚多少钱
  • 抖音的电子商务网站建设php网站开发能挣多钱
  • wordpress 无法添加媒体东莞seo关键词优化
  • 自己建设的手机网站做百度地图定位网站开发的需要的技术人员
  • 网站建设的一些销售技巧wordpress匿名投稿
  • 做网站一般怎么收费的设计本和游戏本区别
  • 东城手机网站制作公司名字大全两个字
  • 58网站 做现浇混凝土上海公司牌照价格2023年