剑指 Offer 27. 二叉树的镜像
题目链接
剑指 Offer 27. 二叉树的镜像 easy
题目描述
请完成一个函数,输入一个二叉树,该函数输出它的镜像。
例如输入:
镜像输出:
示例 1:
输入:root = [4,2,7,1,3,6,9]
输出:[4,7,2,9,6,3,1]
提示:
- 0 < = 节点个数 < = 1000 0 <= 节点个数 <= 1000 0<=节点个数<=1000
解法:dfs
让当前结点 r o o t root root 的左子结点为 右子树的镜像,让当前结点 r o o t root root 的右子结点为 左子树的镜像。递归的处理整个过程即可。
时间复杂度: O ( n ) O(n) O(n)
C++代码:
class Solution {
public:
TreeNode* mirrorTree(TreeNode* root) {
if(root==nullptr) return nullptr;
TreeNode* left = mirrorTree(root->left);
TreeNode* right = mirrorTree(root->right);
root->left = right;
root->right = left;
return root;
}
};
Python代码:
class Solution:
def mirrorTree(self, root: TreeNode) -> TreeNode:
if root == None:
return None
left = self.mirrorTree(root.left)
right = self.mirrorTree(root.right)
root.left = right
root.right = left
return root
相关文章
- LeetCode每日一题:翻转二叉树
- 二叉树层序遍历Java实现「建议收藏」
- 二叉树前序遍历 迭代_二叉树的前序中序后序遍历算法
- 树的先序遍历对应二叉树的_先序遍历输入一个二叉树
- 二叉树的镜像
- 前端工程师leetcode算法面试必备-二叉树深度广度遍历
- 前端leetcde算法面试套路之二叉树
- 【day09】LeetCode(力扣)每日一刷[1640. 能否连接形成数组 ][102. 二叉树的层序遍历 ][704. 二分查找 ]
- 有关二叉树的一些题解
- 线索二叉树怎么画-1. 为什么要用到线索二叉树?
- 二叉树(入门级)
- 算法-二叉树的镜像详解编程语言
- 算法-按之字形顺序打印二叉树详解编程语言
- 算法-从上往下打印二叉树详解编程语言
- python二叉树的实现实例