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

LeetCode:226翻转二叉树

方法一:递归法

/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left = left; * this.right = right; * } * } */ class Solution { public TreeNode invertTree(TreeNode root) { if(root == null){ return null; } //左右节点交换 TreeNode temp = root.right; root.right = root.left; root.left = temp; //递归左右节点 invertTree(root.left); invertTree(root.right); return root; } }

方法二:

/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left = left; * this.right = right; * } * } */ class Solution{ public TreeNode invertTree(TreeNode root){ if(root == null){ return null; } Queue<TreeNode> queue = new LinkedList<>(); queue.offer(root); while(!queue.isEmpty()){ TreeNode current = queue.poll(); //交换左右节点 TreeNode temp = current.left; current.left = current.right; current.right = temp; //左右节点不为空则入队 if(current.left != null){ queue.offer(current.left); } if(current.right != null){ queue.offer(current.right); } } return root; } }

迭代法思路:

先将根节点入队

while循环,只要队列不为空就交换当前要出队节点的左右节点,然后判断当前出队节点的下面是否还有左右节点,如果有就继续入队,循环。

爆栈,层序遍历,逐层打印。寻找最短路径使用队列;核心:new Queue -> offer(root) -> while(!isEmpty) -> poll() -> 处理逻辑 -> offer(children)

http://www.cnnetsun.cn/news/2170654.html

相关文章:

  • ARM SVE2饱和运算指令SQABS与SQADD详解
  • GPT-5.5使用全攻略操作指南与实战技巧
  • 网络安全 | TCP三次握手与四次挥手
  • Horizon X3 AI开发板:边缘计算与BPU架构实战解析
  • MT5 机构级CTP交易管理系统CTP_PLUS
  • 2026年安卓固件加固公司怎么选?从防护强度、性能损耗到合规支撑全解析
  • 我的第一个医学图像分割项目:用UNet在Kaggle细胞核数据集上跑出0.92 IoU
  • ARM SVE2浮点运算指令优化与AI加速实践
  • JavaScript学习路线
  • Kinematify:基于RGB视频的3D关节物体自动重建技术
  • day01 哈希/排序/数组
  • TL431分压电阻计算公式
  • 电池管理系统(BMS)核心技术解析与应用实践
  • 为什么92%的PHP开发者在PHP 9.0 Beta中踩坑?——异步HTTP客户端配置错误导致AI机器人响应延迟超800ms,附官方补丁包下载链接
  • MiMo 开放平台的MiMo邀请码
  • 基于Rust与WebGPU的本地大模型推理服务器部署与实战指南
  • 避坑指南:UR5e+Realsense手眼标定中,坐标系搞错、采样失败怎么办?
  • Taotoken 用量看板如何帮助开发者洞察 API 消耗
  • AI产品经理必备:掌握这“前后左右”四维能力,轻松定义产品未来!
  • Allegro PCB设计效率翻倍秘诀:活用这5个被低估的SubClass(以Route Keepin为例)
  • Dify 2026多模态集成避坑手册,覆盖OpenAI GPT-4o、Qwen-VL、InternVL2三大底座的11项兼容性验证标准
  • 从STM32到网络协议:实战解析C语言结构体打包(#pragma pack)的两种典型应用场景
  • 监督强化学习框架解析与数学推理任务实践
  • 从AttributeError聊起:Pandas的Series和NumPy的ndarray到底有啥区别?
  • QT自定义控件实战:从零创建一个带渐变背景和图标的自定义Button(继承QPushButton)
  • Hitboxer终极指南:彻底解决游戏键盘冲突的专业工具
  • IOMM框架:图像自监督预训练在UMM视觉生成中的应用
  • 如何在电脑上查看 iQOO 短信(4 种简单方法)
  • Momenta 校招 C++ 考试题到底怎么考?它筛的不是刷题机器,是能把算法和系统一起落地的人
  • Nordic Thingy:53物联网开发平台全解析