算法day38 翻转二叉树

题目描述

思路:递归
翻转二叉树可采用递归的方式解决,通过不断地遍历每一个节点,对其左右子树进行翻转达到一个二叉树的整体的翻转。但这里要注意的是,遍历的顺序应该采取前序或后序,而非中序,因为中序会导致对当前子树根节点的重复访问从而致使二叉树的翻转失败。具体代码如下。

  TreeNode* invertTree(TreeNode* root) { 
    if(root == nullptr) return root;
    swap(root->left,root->right);
    invertTree(root->left);
    invertTree(root->right);

    return root;
}

时间复杂度:O(n)
空间复杂度:O(1)

END

posted on 2025-06-11 08:49  sakura430  阅读(13)  评论(0)    收藏  举报