leetcode刷题:二叉树05(翻转二叉树)

226.翻转二叉树

力扣题目链接

翻转一棵二叉树。

leetcode刷题:二叉树05(翻转二叉树)_第1张图片

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);
    }
}

leetcode刷题:二叉树05(翻转二叉树)_第2张图片

有一说一,这题我拿过来题,一遍AC,从头到尾三分钟都没到。写完都迷迷糊糊的。
用递归做

  1. 先判断当前结点是否为空
  2. 交换左右结点
  3. 进入左结点执行这个步骤
  4. 进入右结点执行这个步骤
  • 最后看看题解
    leetcode刷题:二叉树05(翻转二叉树)_第3张图片

吓我一跳。。。赶紧再看看。

你可能感兴趣的:(二叉树,算法,java,leetcode,算法,java)