Merge pull request #100 from Joshua-Lu/patch-16

更新 0226.翻转二叉树 Java版本
This commit is contained in:
Carl Sun
2021-05-14 10:24:28 +08:00
committed by GitHub

View File

@ -203,22 +203,27 @@ public:
Java Java
```java
```Java
class Solution { class Solution {
/**
* 前后序遍历都可以
* 中序不行,因为先左孩子交换孩子,再根交换孩子(做完后,右孩子已经变成了原来的左孩子),再右孩子交换孩子(此时其实是对原来的左孩子做交换)
*/
public TreeNode invertTree(TreeNode root) { public TreeNode invertTree(TreeNode root) {
invert(root); if (root == null) {
return null;
}
invertTree(root.left);
invertTree(root.right);
swapChildren(root);
return root; return root;
} }
private static void invert (TreeNode root) { private void swapChildren(TreeNode root) {
if (root == null) return; TreeNode tmp = root.left;
invert(root.left);
TreeNode t = root.left;
root.left = root.right; root.left = root.right;
root.right = t; root.right = tmp;
invert(root.left);
} }
} }
``` ```