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

律师做网站wordpress移动模块位置

律师做网站,wordpress移动模块位置,网站推广的资源合作推广,英文外贸网站设计文章目录 Tag题目来源题目解读解题思路方法一#xff1a;广度优先搜索方法二#xff1a;深度优先搜索 写在最后 Tag 【深度优先搜索】【广度优先搜索】【二叉树】【2023-12-15】 题目来源 2415. 反转二叉树的奇数层 题目解读 反转二叉树奇数层的节点。 解题思路 对于二叉… 文章目录 Tag题目来源题目解读解题思路方法一广度优先搜索方法二深度优先搜索 写在最后 Tag 【深度优先搜索】【广度优先搜索】【二叉树】【2023-12-15】 题目来源 2415. 反转二叉树的奇数层 题目解读 反转二叉树奇数层的节点。 解题思路 对于二叉树中的节点反转我们只需要交换节点的值。通常有广度优先搜索和深度优先搜索两种解决方法。 方法一广度优先搜索 思路 按层遍历二叉树将奇数层的节点都记录下来如果当前的层是奇数层就交换节点数组中的节点。 算法 在具体实现中通过维护一个 bool 变量 isOdd 来记录当前层是否是奇数层。初始化 isOdd false因为广搜从根节点开始这一层是 0 层当做偶数层。每遍历完一层之后更新 isOdd !isOdd下方实现中使用的是异或运算来更改 isOdd。 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/ class Solution { public:TreeNode* reverseOddLevels(TreeNode* root) {queueTreeNode* q;q.push(root);bool isOdd false;while (!q.empty()) {int sz q.size();vectorTreeNode* arr;for (int i 0; i sz; i) {TreeNode* node q.front();q.pop();if (isOdd) {arr.push_back(node);}if (node-left) { // 完美二叉树有左子树一定也有右子树q.push(node-left);q.push(node-right);}}if (isOdd) {for (int l 0, r sz - 1; l r; l, --r) {swap(arr[l]-val, arr[r]-val);}}isOdd ^ true;}return root;} };复杂度分析 时间复杂度 O ( n ) O(n) O(n) n n n 是二叉树中节点个数每个节点都要被遍历一次。 空间复杂度 O ( n ) O(n) O(n)用数组记录二叉树的每一层的节点数某一层最多有 ⌈ n 2 ⌉ \lceil{\frac{n}{2}}\rceil ⌈2n​⌉ 个节点因此空间复杂度为 O ( n ) O(n) O(n)。 方法二深度优先搜索 思路 核心依然是交换值通过递归左右子树实现。 算法 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/ class Solution { public:void dfs(TreeNode* root1, TreeNode* root2, bool isOdd) {if (root1 nullptr) {return;}if (isOdd) {swap(root1-val, root2-val);}dfs(root1-left, root2-right, !isOdd);dfs(root1-right, root2-left, !isOdd);}TreeNode* reverseOddLevels(TreeNode* root) {dfs(root-left, root-right, true);return root;} };复杂度分析 时间复杂度 O ( n ) O(n) O(n) n n n 是二叉树中节点个数每个节点都要被遍历一次。 空间复杂度 O ( l o g n ) O(logn) O(logn)。 写在最后 如果您发现文章有任何错误或者对文章有任何疑问欢迎私信博主或者在评论区指出 。 如果大家有更优的时间、空间复杂度的方法欢迎评论区交流。 最后感谢您的阅读如果有所收获的话可以给我点一个 哦。
http://www.sadfv.cn/news/53090/

相关文章:

  • 凡科建站怎么保存网站WordPress pwa
  • 青岛网站建设制作控制台网站
  • 爱搜索中级网站建设wordpress阿里百秀4.1
  • 专业网站设计开发互动营销经典案例
  • 酒店网站 方案琪歌 wordpress
  • seo网站快速整站优化技术建筑设计师要学什么专业
  • 视频设计师是干什么的长沙seo工资
  • 企业电子商务网站建设规划报告wordpress获取页面tag
  • 做网站的如何找客户帝舵手表官方网站
  • 如何向百度提交站点收录信息网络培训平台
  • 招聘网站做精准 置顶哈尔滨市土地局
  • 网站程序是什么?网站优化 无需定金
  • 成品网站1688网页公众号里的电影网站怎么做的
  • 义乌高端网站建设乐云seo可视化网站建设
  • 东莞高端网站建设费用成全视频免费观看
  • 是做网站好还是做游戏好制作网页游戏过程
  • asp.net企业网站设计wordpress只能通过本机登录
  • 茂港网站建设公司网络组建论文
  • 淄博外贸网站建设ppt模板免费下载 动态
  • 青之峰网站建设安卓开发用什么开发工具
  • 青海找人做网站多少钱asp一个空间建多个网站系统
  • 网站排名张家港加入网络营销公司
  • 大连甘井子区区号烟台seo推广优化
  • 访问不了服务器的网站快云服务器怎么做网站
  • 姑苏营销型网站建设电话技术支持 海安网站建设
  • 网站建设都有哪些做 爱 网站小视频
  • 企业网站建设费怎么核算wordpress 下一篇
  • 哪个网站在线做头像好设计官网页面多少钱
  • flash个人网站片头智慧医疗软件公司排名
  • 高新区免费网站建设商丘网格通