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

做外贸哪个网站好兰州网站建设索q479185700

做外贸哪个网站好,兰州网站建设索q479185700,免费版在线crm,合肥网站商城开发NO.116 填充每个节点的下一个右侧节点指针 给定一个 完美二叉树 #xff0c;其所有叶子节点都在同一层#xff0c;每个父节点都有两个子节点。二叉树定义如下#xff1a; struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针#xff0c;…NO.116 填充每个节点的下一个右侧节点指针 给定一个 完美二叉树 其所有叶子节点都在同一层每个父节点都有两个子节点。二叉树定义如下 struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点则将 next 指针设置为 NULL。 初始状态下所有 next 指针都被设置为 NULL。 示例 1 输入root [1,2,3,4,5,6,7] 输出[1,#,2,3,#,4,5,6,7,#] 解释给定二叉树如图 A 所示你的函数应该填充它的每个 next 指针以指向其下一个右侧节点如图 B 所示。序列化的输出按层序遍历排列同一层节点由 next 指针连接# 标志着每一层的结束。示例 2: 输入root [] 输出[] 本题难点在于如何填充每个节点的next 指针让这个指针指向其下一个右侧节点。如何获取队列中下一个节点我们还没有遍历到下一个节点怎么能获取下一个节点的指针呢 这里的思路是保存上一个遍历节点的指针让它的next指针指向当前节点。是不是很巧妙和我们自然的思路不太一样。 因为我们用到了前节点的变量而头节点并没有前节点所以需要单独考虑情况。 完整代码如下 class Solution { public:Node* connect(Node* root) {queueNode* que;if(root ! NULL){que.push(root);}while(!que.empty()){// 如何判断每一层的个数//记录队列的大小int size que.size();//建立当前节点Node* node;Node* prenode;// 遍历队列放入数组for(int i 0; i size; i ){//如果遍历到这一层的头节点if(i 0){node que.front();prenode node;}else{//出队列第一个元素放入数组node que.front();//上一个节点的next指针指向当前节点prenode-next node;//将前节点更新为当前节点prenode node;}//将左右节点入队列if(node-left) que.push(node-left);if(node-right) que.push(node-right);//将当前节点弹出que.pop();}//这一层遍历完将最后一个元素的next设置为nullnode-next NULL;}return root;} }; 总结与反思 层序遍历最关键的是深刻理解整个for循环是每一层遍历的核心这样添加代码就会更加自如知道是在层前还是层中还是层后。 写完代码可以验证一遍测试用例发现bug避免显而易见的错误。 NO.117 填充每个节点的下一个右侧节点指针II 给定一个二叉树 struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点则将 next 指针设置为 NULL 。 初始状态下所有 next 指针都被设置为 NULL 。 示例 1 输入root [1,2,3,4,5,null,7] 输出[1,#,2,3,#,4,5,7,#] 解释给定二叉树如图 A 所示你的函数应该填充它的每个 next 指针以指向其下一个右侧节点如图 B 所示。序列化输出按层序遍历顺序由 next 指针连接# 表示每层的末尾。 示例 2 输入root [] 输出[] 这道题目说是二叉树但116题目说是完整二叉树其实没有任何差别一样的代码一样的逻辑一样的味道 完整代码如下 class Solution { public:Node* connect(Node* root) {queueNode* que;if(root ! NULL){que.push(root);}while(!que.empty()){// 如何判断每一层的个数//记录队列的大小int size que.size();//建立当前节点Node* node;Node* prenode;// 遍历队列放入数组for(int i 0; i size; i ){//如果遍历到这一层的头节点if(i 0){node que.front();prenode node;}else{//出队列第一个元素放入数组node que.front();//上一个节点的next指针指向当前节点prenode-next node;//将前节点更新为当前节点prenode node;}//将左右节点入队列if(node-left) que.push(node-left);if(node-right) que.push(node-right);//将当前节点弹出que.pop();}//这一层遍历完将最后一个元素的next设置为nullnode-next NULL;}return root;} }; NO.104 二叉树的最大深度 给定一个二叉树 root 返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1 输入root [3,9,20,null,null,15,7] 输出3示例 2 输入root [1,null,2] 输出2 完整代码如下 class Solution { public:int maxDepth(TreeNode* root) {queueTreeNode* que;//记录最大深度int depth 0;if(root ! NULL){que.push(root);}while(!que.empty()){// 如何判断每一层的个数//记录队列的大小int size que.size();// 遍历队列放入数组for(int i 0; i size; i ){TreeNode* node que.front();//将左右节点入队列if(node-left) que.push(node-left);if(node-right) que.push(node-right);//将当前节点弹出que.pop();} depth;}//循环结束说明遍历完最后一层返回深度return depth;} }; NO.111 二叉树的最小深度 给定一个二叉树找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明叶子节点是指没有子节点的节点。 示例 1 输入root [3,9,20,null,null,15,7] 输出2示例 2 输入root [2,null,3,null,4,null,5,null,6] 输出5 完整代码如下 class Solution { public:int minDepth(TreeNode* root) {queueTreeNode* que;//记录深度int depth 0;if(root ! NULL){que.push(root);}while(!que.empty()){// 如何判断每一层的个数//记录队列的大小int size que.size();// 遍历队列放入数组depth;for(int i 0; i size; i ){TreeNode* node que.front();//一旦找到叶子节点就返回深度if(node-left NULL node-right NULL) return depth;//将左右节点入队列if(node-left) que.push(node-left);if(node-right) que.push(node-right);//将当前节点弹出que.pop();} }return 0;} };
http://www.hkea.cn/news/14282341/

相关文章:

  • 国际化网站设计属性词 关键词 核心词
  • 网站设计的公司运营接单北京出名的室内设计公司
  • 网站建设使用的什么软件有哪些内容莱芜市网站建设设计
  • 四川网站设计首选柚米科技吴中区网站设计公司
  • 模版网站可以做seo吗php 网站 教程
  • 网站建设 拖欠尾款怎样增加网站流量
  • 电子商务网站开发公司wordpress shortinit
  • 手机app ui设计在线网站微信h5怎么制作
  • 网站开发 外包公司那些钓鱼网站是怎么做的
  • 江西省建设厅教育网站最近新闻热点事件
  • Wordpress視頻加密宁波厂家关键词优化
  • 化工类网站建设推广阳江招聘网最新招聘2023
  • 百度小程序如何做网站网络营销从网站建设开始
  • 最简单的网站建设语音最新seo快排技术qq
  • 公司网站建设费放什么科目域名备案要求
  • wordpress 建站免费石家庄seo霸屏
  • 企业网站设计合同湖北强涛建设工程有限公司网站
  • 食品网站建设规划书网站积分系统
  • 建设网站 怀疑对方传销 网站制作 缓刑微信怎么弄公众号
  • 国内网站学做网站 软件
  • 如何在招聘网站上选个好公司做销售业务网站制作
  • 北京做网站youyi51别人网站的字体
  • 校园网站建设的可行性分析山东系统建站怎么用
  • 网站如何做微信登录王烨画家
  • 交做网站视频百度云wordpress定时插件
  • 搬家网站模板松江洞泾网站建设
  • jsp做网站用到什么技术wordpress网校
  • 南宁网站建站推广站长做什么网站赚钱
  • 河北商城网站建设价格关键的近义词
  • 个人建设网站服务器怎么解决方案网页制作教程