Java114 LeeCode 翻转二叉树

翻转二叉树

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

先想思路,看题解,对照题解思路一不一样,很一样直接开始写,没思路直接看题解

思路:root 遍历 交换左右子树 左子树先存储到数组 左子树=右子树

java 复制代码
class Solution {
	public TreeNode invertTree(TreeNode root) {
		//递归函数的终止条件,节点为空时返回
		if(root==null) {
			return null;
		}
		//下面三句是将当前节点的左右子树交换
		TreeNode tmp = root.right;
		root.right = root.left;
		root.left = tmp;
		//递归交换当前节点的 左子树
		invertTree(root.left);
		//递归交换当前节点的 右子树
		invertTree(root.right);
		//函数返回时就表示当前这个节点,以及它的左右子树
		//都已经交换完了
		return root;
	}
}

作者:王尼玛
链接:https://leetcode.cn/problems/invert-binary-tree/solutions/73159/dong-hua-yan-shi-liang-chong-shi-xian-226-fan-zhua/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。



为啥飘红了?

java 复制代码
import javax.swing.tree.TreeNode;

/**
 * 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;
 *     }
 * }
 */
public class Solution2 {
    public TreeNode invertTree(TreeNode root) {
// 定义数组,存储节点 注释
        //从最底层节点考虑 如果遍历到最底层 位空 返回空
       if(root==null){
        return null;
       }
//定义多个 存储任意字符元素的数组 注释
        //交换 当前节点 根左右交换
        //
        TreeNode tmp=root.right;//错误 定义tmp  因为 root.right是Treenode格式 所以定义tmp也是Treenode格式
       root.right=root.left;
       root.left=tmp;
       //为啥飘红了?
        //再次调用本方法 每个当前节点的左右都进行执行 当前节点的左右节点的左右节点进行交换 一直持续到没有左右节点 返回空 持续到最底层 返回空
        //倒数第一层返回本身节点 及底下空
        invertTree(root.left);
        invertTree(root.right);
        return root;//返回当前节点 最后一层的下一层返回空 最后一层返回本节点 及底下空 倒数第二层节点 返回 本节点及左右节点 持续返回i

    }
}

测试通过了

相关推荐
一 乐2 小时前
个人理财系统|基于java+小程序+APP的个人理财系统设计与实现(源码+数据库+文档)
java·前端·数据库·vue.js·后端·小程序
盖世英雄酱581362 小时前
java深度调试技术【第四五章:多线程和幽灵代码】
java·后端
稚辉君.MCA_P8_Java3 小时前
深入理解 TCP;场景复现,掌握鲜为人知的细节
java·linux·网络·tcp/ip·kubernetes
熊猫比分站3 小时前
[特殊字符] Java/Vue 实现体育比分直播系统,支持多端实时更新
java·开发语言·vue.js
lang201509283 小时前
深入掌握 Maven Settings:从配置到实战
java·maven
scx_link3 小时前
修改JetBrains产品(IntelliJ IDEA 、PyCharm等软件)的默认插件和日志的存储位置
java·pycharm·intellij-idea
BUG?不,是彩蛋!3 小时前
Maven-Java 项目到底解决了什么痛点?
java·servlet·maven
小池先生3 小时前
idea配置代码注释模板
java·ide·intellij-idea
inferno3 小时前
Maven基础(一)
java·开发语言·maven