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 }
无论有多困难,都坚强的抬头挺胸,人生是一场醒悟,不要昨天,不要明天,只要今天。不一样的你我,不一样的心态,不一样的人生,顺其自然吧