226. 翻转二叉树

翻转一棵二叉树。

示例:

输入:

4
/
2 7
/ /
1 3 6 9
输出:

4
/
7 2
/ /
9 6 3 1

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/invert-binary-tree

 1 public class InvertBinaryTree {
 2     static class TreeNode {
 3         int val;
 4         TreeNode left;
 5         TreeNode right;
 6         TreeNode(int x) {
 7             val = x;
 8         }
 9     }
10     //方式一:到叶子节点就返回
11     public TreeNode invertTree1(TreeNode root) {
12         if(root == null || (root.left == null && root.right == null)) {
13             return root;
14         }
15         TreeNode leftNode = invertTree1(root.left);  //找到左结点
16         TreeNode rightNode = invertTree1(root.right);  //找到右结点
17         root.left = rightNode;  //交换节点
18         root.right = leftNode;
19         return root;
20     }
21     //方式二:直到null才返回
22     public TreeNode invertTree2(TreeNode root) {
23         if(root == null) {
24             return null;
25         }
26         TreeNode leftNode = root.left;
27         root.left = invertTree2(root.right);
28         root.right = invertTree2(leftNode);
29         return root;
30     }
31 }
无论有多困难,都坚强的抬头挺胸,人生是一场醒悟,不要昨天,不要明天,只要今天。不一样的你我,不一样的心态,不一样的人生,顺其自然吧
原文地址:https://www.cnblogs.com/xiyangchen/p/11066366.html