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

北京网站建设价钱公众号文章制作

北京网站建设价钱,公众号文章制作,长沙房地产信息网官网,域名托管1、题目描述 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入:root [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] 示例 2: 输入:root [2,1,3] 输出:[2,3,1…

1、题目描述

给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。

示例 1:

输入:root = [4,2,7,1,3,6,9]
输出:[4,7,2,9,6,3,1]

示例 2:

输入:root = [2,1,3]
输出:[2,3,1]

示例 3:

输入:root = []
输出:[]

提示:

  • 树中节点数目范围在 [0, 100] 内

  • -100 <= Node.val <= 100

2、方法1:递归法

核心思想:采用分治思想,先处理子树再处理根节点

  1. 递归到最左叶子节点

  2. 递归到最右叶子节点

  3. 从底部开始逐层交换左右子树

  4. 最终返回完成翻转的根节点

public TreeNode invertTree(TreeNode root) {if(root == null) return null;invertTree(root.left);   // 递归翻转左子树invertTree(root.right);  // 递归翻转右子树swap(root);             // 交换当前节点的左右子节点return root;
}

复杂度分析

  • 时间复杂度:O(n) 每个节点访问一次

  • 空间复杂度:O(h) 递归栈空间(h为树高)

3、方法2:迭代法(层序遍历+队列)

核心思想:广度优先遍历,逐层交换节点

  1. 使用队列实现BFS(广度优先)遍历,逐层交换

  2. 每访问一个节点立即交换其左右子节点

  3. 子节点入队前已完成交换,保证后续正确处理

public TreeNode invertTree(TreeNode root) {if (root == null) return null;Queue<TreeNode> queue = new LinkedList<>();queue.offer(root);while (!queue.isEmpty()){TreeNode node = queue.poll();swap(node);  // 核心交换操作if (node.left != null) queue.offer(node.left);if (node.right != null) queue.offer(node.right);}return root;
}

复杂度分析

  • 时间复杂度:O(n)

  • 空间复杂度:O(w) w为树的最大宽度

4、方法3:迭代法(后序遍历+栈)

核心思想:用栈模拟递归过程,显式控制遍历顺序

  1. 维护pre指针标记已访问的右子树

  2. 只有确保左右子树都访问后才执行交换

  3. 严格遵循左→右→根的处理顺序

public TreeNode invertTree(TreeNode root) {if(root == null) return null;Stack<TreeNode> stack = new Stack<>();TreeNode cur = root, pre = null;while (cur != null || !stack.isEmpty()){while (cur != null){stack.push(cur);cur = cur.left;}cur = stack.pop();if (cur.right == pre || cur.right == null){swap(cur);      // 后序位置交换pre = cur;cur = null;} else {stack.push(cur);cur = cur.right;}}return root;
}

复杂度分析

  • 时间复杂度:O(n)

  • 空间复杂度:O(h)

http://www.dtcms.com/a/443091.html

相关文章:

  • 长沙机械网站建设昆明最新消息今天
  • 深度解析 Python 报错:TypeError: ‘NoneType‘ object is not subscriptable
  • 泉州市城乡和住房建设网站大连装修公司
  • 哈巴河网站制作今天的最新消息新闻
  • 做网站猫腻大吗电商网站建设功能
  • 站长论坛网站模板建站教程
  • 淮南网站建设服务免费wordpress中文主题下载
  • 印刷报价网站源码下载小笨鸟跨境电商平台
  • Product Hunt 每日热榜 | 2025-10-04
  • 电商购物网站模板下载来年做哪个网站致富
  • 什么是近场?什么是远场?
  • 【typora激活使用】mac操作方式
  • 免费网站seo优化接单网官网
  • 旅游商城网站订单处理网站空间 云端
  • 串扰12-串扰对信号的影响
  • 申报湖南创新型省份建设专项网站wordpress用户管理插件
  • 网站开发常用工具网站建设表格的属性
  • 网站开发兼职网站陈铭生杨昭
  • 网站中英文域名做电商网站的上海公司
  • seo网站外包做平台还是自己做网站
  • 自用的板子(搜索与图论)
  • Process Monitor 学习笔记(5.9):Procmon 的自动化操作与命令行速查
  • 唐山网站优化中国风网页设计欣赏
  • 微网站开发需要多少费用主营网站开发
  • 网站开发者密钥sousou提交网站入口
  • 网页版qq怎么登录关键词优化的最佳方法
  • 网站备案注销怎么恢复河北省和城乡建设厅网站
  • 网站建设设计服务温州服务网站建设
  • 做交易网站需要多少钱wordpress改字体插件
  • 这样可以做网站绍兴企业网站建站模板