Java实现 LeetCode 226 翻转二叉树
226. 翻转二叉树
翻转一棵二叉树。
示例:
输入:
4/ \2 7/ \ / \
1 3 6 9
输出:
4/ \7 2/ \ / \
9 6 3 1
备注:
这个问题是受到 Max Howell 的 原问题 启发的 :
谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这道题,这太糟糕了。
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/
class Solution {// 先序遍历--从顶向下交换// public TreeNode invertTree(TreeNode root) {// if (root == null) return null;// // 保存右子树// TreeNode rightTree = root.right;// // 交换左右子树的位置// root.right = invertTree(root.left);// root.left = invertTree(rightTree);// return root;// }//中序遍历
// public TreeNode invertTree(TreeNode root) {
// if (root == null) return null;
// invertTree(root.left); // 递归找到左节点
// TreeNode rightNode= root.right; // 保存右节点
// root.right = root.left;
// root.left = rightNode;
// // 递归找到右节点 继续交换 : 因为此时左右节点已经交换了,所以此时的右节点为root.left
// invertTree(root.left);
// }//后序遍历
// public TreeNode invertTree(TreeNode root) {
// // 后序遍历-- 从下向上交换
// if (root == null) return null;
// TreeNode leftNode = invertTree(root.left);
// TreeNode rightNode = invertTree(root.right);
// root.right = leftNode;
// root.left = rightNode;
// return root;
// }//层次遍历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();TreeNode rightTree = node.right;node.right = node.left;node.left = rightTree;if (node.left != null){queue.offer(node.left);}if (node.right != null){queue.offer(node.right);}}return root;}}
Java实现 LeetCode 226 翻转二叉树相关推荐
- LeetCode:226. 翻转二叉树
226. 翻转二叉树 题目: 解题思路: 源码: 踩坑点: 题目: 解题思路: 用递归的方法将二叉树的左右节点互换,核心思想就是交换 源码: struct TreeNode* invertTree(s ...
- LeetCode 226 翻转二叉树
思路 递归: 考虑翻转二叉树根结点的左子树和右子树 递归出口 1.如果root为NULL,返回空节点 if(root==NULL)return NULL; 2.如果root不为NULL,且左右子树全为 ...
- LeetCode 226. 翻转二叉树(DFS BFS)
文章目录 1. 题目信息 2. 解题 2.1 DFS 2.2 BFS 1. 题目信息 翻转一棵二叉树. 示例:输入:4/ \2 7/ \ / \ 1 3 6 9输出:4/ \7 2/ \ / \ 9 ...
- leetcode 226. 翻转二叉树
难度:简单 频次:47 题目: 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点. 解题思路: 1.DFS遍历的时候反转root的左右节点即可 2.后者用队列模拟栈模拟递归 代码 / ...
- Leetcode 226. 翻转二叉树 (每日一题 20210819)
翻转一棵二叉树.示例:输入:4/ \2 7/ \ / \ 1 3 6 9 输出:4/ \7 2/ \ / \ 9 6 3 1链接:https://leetcode-cn.com/problems/in ...
- LeetCode 226翻转二叉树-简单
翻转一棵二叉树. 示例: 输入: 4/ \2 7/ \ / \ 1 3 6 9 输出: 4/ \7 2/ \ / \ 9 6 3 1 代码如下: /*** Definition for a binar ...
- leetcode - 226. 翻转二叉树
翻转一棵二叉树. 示例: 输入: 输出: /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode ...
- Leetcode——226. 翻转二叉树
问题 翻转一个二叉树,例子如下: 输入:4/ \2 7/ \ / \ 1 3 6 9 输出:4/ \7 2/ \ / \ 9 6 3 1 可以看出相当于原二叉树的镜像,也就是像逆置二叉树的每一层 解决 ...
- 代码随想录【day 14 二叉树】| 层序遍历 226.翻转二叉树 101.对称二叉树
代码随想录[day 14 二叉树]| 层序遍历 226.翻转二叉树 101.对称二叉树 层序遍历 卡哥文解 视频讲解 题目链接:102.二叉树的层序遍历 解题思路 代码实现 题目链接:107.二叉树的 ...
最新文章
- 不止摩尔定律,计算领域值得学习的定律还有哪些?
- android 新浪财经截屏分享,[图]Android 12截图曝光:启用全新UI 增强隐私保护功能...
- 使用java poi解析表格
- First update-【计算机方面的权威外文数据库(全)】
- 网站降低用户跳出率的常见技巧有哪些?
- web项目html引入css文件路径,详解Webpack和Webpack-simple中如何引入CSS文件_旧店_前端开发者...
- DL之GANDCGNNcGAN:GANDCGNNcGAN算法思路、关键步骤的相关配图和论文集合
- HTML中文字布局,HTML文字布局
- P2680-运输计划【LCA,树上差分,二分答案】
- PC-[WIN7]此计算机无法联接家庭组
- linux打印显示etc中的文件,Linux命令之文件内容查看(cat、tac、nl、more、less、head、tail)...
- vue生成txt文件下载
- 显示器 设置选项 解析
- icepak计算机机箱热仿真,基于ANSYSIcepak的密闭机箱散热仿真分析.PDF
- 硅谷华人天才CEO被开除,是否会有奇迹发生?
- win7与internet时间同步出错_【时间同步出错】win7系统同步internet时间总是提示同步时出错的解决方法...
- 时间展示 星期几时英文需要显示成中文问题解决
- 精益软件度量之读书笔记(一)度量和组织目标
- 新媒体运营教程:完整的用户增长5步方案!
- Python 60 天 + 450 题,倾情奉献
热门文章
- 【MySQL】建立、写入、修改数据实例操作
- Mac 上的 Keynote 讲演文件转ppt格式
- 叮当云Android官方,【叮当云】全新版本爆料——产品设计思路
- 如何测试芯片二极管特性?
- stata绘制roc曲线_[转载]光滑ROC曲线的画法
- VueJS的Frappe Charts的简单包装
- hdu4343倍增思想
- 2月1日发布完毕!口袋妖怪音乐专辑“一日一专辑”发布计划
- switch-case的结构及一些注意事项
- CakePHP v3.9.3 Connection to database could not be established: SQLSTATE[HY000] [1045] Access