题目:翻转二叉树
方法①:深度优先遍历(链接)
/**
* 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;DFS(root, root->left, root->right);return root;}void DFS(TreeNode *root, TreeNode *p1, TreeNode *p2){if (!p1 && !p2)return;TreeNode *s = root->left;root->left = root->right;root->right = s;if (p1)DFS(p1, p1->left, p1->right);if (p2)DFS(p2, p2->left, p2->right);}
};