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

leetcode做题笔记​117. 填充每个节点的下一个右侧节点指针 II

给定一个二叉树:

struct Node {int val;Node *left;Node *right;Node *next;
}

填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL 。

初始状态下,所有 next 指针都被设置为 NULL 。

思路一:递归

struct Node *find_next(struct Node *root) {while (root) {if (root->left)return root->left;if (root->right)return root->right;root = root->next;}return NULL;
}struct Node* connect(struct Node* root) {if (!root)return NULL;if (root->right)root->right->next = find_next(root->next);if (root->left)root->left->next = root->right ? root->right : find_next(root->next);connect(root->right);connect(root->left);return root;
}

分析:

本题与上题相似,不同的是判断的时候需要将找不到下一个next节点的指针设置为NULL,可以用 root->left->next = root->right ? root->right : find_next(root->next);来设置,最后输出root即可

总结:

本题考察二叉树递归操作,将指针关系处理好即可解决

http://www.lryc.cn/news/146778.html

相关文章:

  • 解决博客不能解析PHP直接下载源码问题
  • voc 转coco
  • 【C语言每日一题】03. 对齐输出
  • 七大排序完整版
  • C语言的数据类型简介
  • Fei-Fei Li-Lecture 16:3D Vision 【斯坦福大学李飞飞CV课程第16讲:3D Vision】
  • 【计算机视觉】YOLO 入门:训练 COCO128 数据集
  • 【数分面试答疑】XX场景如何分析问题的思考
  • html中如何用vue语法,并使用UI组件库 ,html中引入vue+ant-design-vue或者vue+element-plus
  • 【数据结构】二叉数的存储与基本操作的实现
  • 使用 Netty 实现群聊功能的步骤和注意事项
  • 一篇文章搞定《WebView的优化及封装》
  • FreeSWITCH 1.10.10 简单图形化界面5 - 使用百度TTS
  • DP读书:不知道干什么就和我一起读书吧
  • 【Linux】进程通信 — 信号(上篇)
  • JS弃之可惜食之无味的代码冷知识
  • 数据结构初阶--排序
  • 赴日IT 如何提高去日本做程序员的几率?
  • c# 使用了 await、asnync task.run 三者结合使用
  • C#获取屏幕缩放比例
  • Rn实现省市区三级联动
  • SpringCloud学习笔记(十)_SpringCloud监控
  • 测试理论与方法----测试流程的第二个环节:测试计划
  • postgresql-子查询
  • Linux 系统运维工具之 OpenLMI
  • 8天长假快来了,Python分析【去哪儿旅游攻略】数据,制作可视化图表
  • 【HSPCIE仿真】输入网表文件(5)基本仿真输出
  • uni-app中使用iconfont彩色图标
  • Hystrix: Dashboard流监控
  • iconfont 图标在vue里的使用