Leetcode 226. 翻转二叉树
思路
递归交换左右子树,遇到空节点返回。
代码
TreeNode* invertTree(TreeNode* root) {
if (root == NULL) return root;
//交换左右子树
TreeNode* temp = root->left;
root->left = root->right;
root->right = temp;
//对左右子树进行递归
invertTree(root->left);
invertTree(root->right);
return root;
}
总结
看到某个小伙伴写的递归三部曲,觉得很受用:
- 确定递归函数的参数和返回值
- 确定终止条件
- 确定单层递归的逻辑