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

day20 leetcode-hot100-38(二叉树3)

226. 翻转二叉树 - 力扣(LeetCode)

1.广度遍历

思路

这题目很简单,就是交换每个节点的左右子树,也就是相当于遍历到某个节点,然后交换子节点即可。

具体步骤

(1)创建队列,使用广度优先遍历。

(2)while循环判断当前队列是否为空,不为空,就将最前面的节点poll(),然后将该节点左右子节点加入队列(广度遍历的方案),再交换左右节点。

具体代码

/*** 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 root;}TreeNode ans = root;Deque<TreeNode>dq = new LinkedList<>();dq.offer(root);while(!dq.isEmpty()){TreeNode node = dq.poll();if(node.left!=null){dq.offer(node.left);}if(node.right!=null){dq.offer(node.right);}TreeNode temp = new TreeNode();temp=node.left;node.left = node.right;node.right=temp;}return ans;}
}

2深度优先遍历(前序遍历)

思路

与上面广度优先遍历一样,也是遍历到哪个节点,然后将该节点入栈,之后交换位置。

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

相关文章:

  • Python打卡训练营学习记录Day46
  • 使用 C/C++ 和 OpenCV 实现滑动条控制图像旋转
  • 【 java 集合知识 第一篇 】
  • 护网行动面试试题(2)
  • 使用WebSocket实时获取印度股票数据源(无调用次数限制)实战
  • 阿里140 补环境日志
  • uniapp map组件的基础与实践
  • 在 Kali 上打造渗透测试专用的 VSCode 环境
  • 《前端面试题:CSS3新特性》
  • 极速互联·智控未来——SG-Can(FD)Hub-600 六通道CANFD集线器
  • OpenVINO环境配置--OpenVINO安装
  • Linux top 命令 的使用总结
  • ajax学习手册
  • Python爬虫实战:研究urlunparse函数相关技术
  • [蓝桥杯]采油
  • OpenLayers 地图定位
  • 黑龙江云前沿服务器租用:便捷高效的灵活之选​
  • PyTorch中matmul函数使用详解和示例代码
  • 论文解读:Locating and Editing Factual Associations in GPT(ROME)
  • NoSQl之Redis部署
  • 学习设计模式《十二》——命令模式
  • 十三、【核心功能篇】测试计划管理:组织和编排测试用例
  • 手撕 K-Means
  • SmolVLA: 让机器人更懂 “看听说做” 的轻量化解决方案
  • day45python打卡
  • AIGC赋能前端开发
  • Web 3D协作平台开发案例:构建制造业远程设计与可视化协作
  • AI Agent开发第78课-大模型结合Flink构建政务类长公文、长文件、OA应用Agent
  • 极空间z4pro配置gitea mysql,内网穿透
  • 第三方测试机构进行科技成果鉴定测试有什么价值