diff --git a/二叉树/3. 翻转二叉树.md b/二叉树/3. 翻转二叉树.md new file mode 100644 index 0000000..e0ac8cc --- /dev/null +++ b/二叉树/3. 翻转二叉树.md @@ -0,0 +1,70 @@ +# 翻转二叉树 + +## 题目 + +给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 + + + +示例 1: + + + +输入:root = [4,2,7,1,3,6,9] +输出:[4,7,2,9,6,3,1] +示例 2: + + + +输入:root = [2,1,3] +输出:[2,3,1] +示例 3: + +输入:root = [] +输出:[] + + +提示: + +树中节点数目范围在 [0, 100] 内 +-100 <= Node.val <= 100 + +## 思路 + +- 递归 + - 对于每一个节点 + - 为空 + - 返回当前节点 null + - 不为空 + - 交换左右节点,再返回当前节点 + +## 代码 + +```java +/** + * Definition for a binary tree node. + * public 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; + * } + * } + */ +class Solution { + public TreeNode invertTree(TreeNode root) { + // Special + if (root == null) return null; + TreeNode left = invertTree(root.left); + TreeNode right = invertTree(root.right); + root.left = right; + root.right = left; + return root; + } +} +``` \ No newline at end of file