1. 递归
先交换左右子节点,然后再递归反转左右子树。
时间O(n)
,空间O(n)
。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
class Solution { public: TreeNode* invertTree(TreeNode* root) { if (root != nullptr) { TreeNode* temp = root->left; root->left = root->right; root->right = temp; invertTree(root->left); invertTree(root->right); } return root; } };
|