二叉树——226. 翻转二叉树
题目:
思路:
思路就是要确定遍历顺序,和如何进行翻转。
翻转就交换左右节点,通过一个额外的节点,实现交换。然后再递归,那么遍历顺序也就自然而然可以得出是前序遍历,都有了,剩下的干就行了。
代码:
class Solution {
public:
TreeNode* invertTree(TreeNode* root) {
if(root == NULL) return nullptr;
// 前序遍历
// 暂存右节点,进行左右节点交换
TreeNode* tmp = root->right;
root->right = root->left;
root->left = tmp;
invertTree(root->left); // 左
invertTree(root->right); // 右
return root;
}
};