226. Invert Binary Tree Posted on 2021-02-17 In LeetCode Disqus: Symbols count in article: 1.2k Reading time ≈ 1 mins. 12345678910111213141516171819/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: TreeNode* invertTree(TreeNode* root) { if (!root) return root; auto t = root->left; root->left = invertTree(root->right); root->right = invertTree(t); return root; }}; 1234567891011121314151617181920/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: TreeNode* invertTree(TreeNode* root) { if (!root) return root; auto l = invertTree(root->left); auto r = invertTree(root->right); root->left = r; root->right = l; return root; }}; 1234567891011121314151617/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: TreeNode* & invertTree(TreeNode* &root) { // 必须返回ref,否则不能swap if (!root) return root; swap(invertTree(root->left), invertTree(root->right)); return root; }};