mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-10 04:06:51 +08:00
@ -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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
Reference in New Issue
Block a user