diff --git a/.idea/workspace.xml b/.idea/workspace.xml index a9d754e..4f3f6d0 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -1,8 +1,9 @@ - - + + + @@ -67,11 +68,11 @@ + - @@ -281,7 +282,8 @@ - + + 1580045439607 @@ -605,7 +607,14 @@ - @@ -658,7 +667,6 @@ - @@ -683,7 +691,8 @@ - @@ -698,10 +707,10 @@ - + - + @@ -756,10 +765,10 @@ - + - + diff --git a/README.md b/README.md index 4f03271..987624d 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,7 @@ * [q21_合并两个有序链表](/src/递归/q21_合并两个有序链表) * [q101_对称二叉树](/src/递归/q101_对称二叉树) +* [q226_翻转二叉树](/src/递归/q226_翻转二叉树) * [q236_二叉树的最近公共祖先](/src/递归/q236_二叉树的最近公共祖先) ### 分治法/二分法 diff --git a/src/递归/q226_翻转二叉树/Solution.java b/src/递归/q226_翻转二叉树/Solution.java new file mode 100644 index 0000000..2d17d88 --- /dev/null +++ b/src/递归/q226_翻转二叉树/Solution.java @@ -0,0 +1,23 @@ +package 递归.q226_翻转二叉树; + +/** + * 递归 o(n) + */ +public class Solution { + + public TreeNode invertTree(TreeNode root) { + if (root == null) { + return null; + } + TreeNode temp = root.left; + root.left = root.right; + root.right = temp; + if (root.left != null) { + invertTree(root.left); + } + if (root.right != null) { + invertTree(root.right); + } + return root; + } +} diff --git a/src/递归/q226_翻转二叉树/TreeNode.java b/src/递归/q226_翻转二叉树/TreeNode.java new file mode 100644 index 0000000..ac16744 --- /dev/null +++ b/src/递归/q226_翻转二叉树/TreeNode.java @@ -0,0 +1,11 @@ +package 递归.q226_翻转二叉树; + +public class TreeNode { + int val; + TreeNode left; + TreeNode right; + + TreeNode(int x) { + val = x; + } +}