226. 翻转二叉树 --力扣 --JAVA

题目

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

解题思路

  1. 是对整个二叉树进行反转,所以需要先进行反转然后在进行递归;
  2. 因为方法的第一次进入首节点未发生改变,可以直接返回root即为最终二叉树的首节点。

代码展示

package zero.two.two;

/**
 * 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。
 */
public class Six {
    public static void main(String[] args) {
        Six six = new Six();
        TreeNode data = new TreeNode(4,new TreeNode(2,new TreeNode(1),new TreeNode(3)),new TreeNode(7,new TreeNode(6),new TreeNode(9)));
        TreeNode ans = six.invertTree(data);
        System.out.println(ans);
    }
    public TreeNode invertTree(TreeNode root) {
        if(root == null){
            return null;
        }
        TreeNode temp = root.left;
        root.left = root.right;
        root.right = temp;
        invertTree(root.left);
        invertTree(root.right);
        return root;
    }
}
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;
    }
}

你可能感兴趣的:(力扣练习,算法,数据结构)