翻转二叉树

翻转二叉树(难度:简单)

1

方法: 递归

复杂度

时间复杂度:O(n). 每个节点只被访问了一次。

空间复杂度:最坏情况下栈内需要存放 O(h)个方法调用,其中 h是树的高度。由于 hO(n),可得出空间复杂度为 O(n)。

代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public TreeNode invertTree(TreeNode root) {
if(root==null)
return root;
TreeNode temp = invertTree(root.left);
root.left = invertTree(root.right);
root.right = temp;

return root;
}
}
2