226.翻转二叉树
翻转一棵二叉树。
package com.programmercarl.tree;
/**
* @ClassName InvertTree
* @Descriotion TODO
* @Author nitaotao
* @Date 2022/7/3 12:57
* @Version 1.0
* https://leetcode.cn/problems/invert-binary-tree/
* 226. 翻转二叉树
**/
public class InvertTree {
public TreeNode invertTree(TreeNode root) {
invert(root);
return root;
}
public void invert(TreeNode root) {
if (root == null) {
return;
}
TreeNode temp = root.left;
root.left = root.right;
root.right = temp;
invertTree(root.left);
invertTree(root.right);
}
}
有一说一,这题我拿过来题,一遍AC,从头到尾三分钟都没到。写完都迷迷糊糊的。
用递归做
- 先判断当前结点是否为空
- 交换左右结点
- 进入左结点执行这个步骤
- 进入右结点执行这个步骤
- 最后看看题解
吓我一跳。。。赶紧再看看。