首页 > 其他分享 >力扣-226-翻转二叉树/剑指Offer-27-二叉树的镜像

力扣-226-翻转二叉树/剑指Offer-27-二叉树的镜像

时间:2022-09-24 18:56:21浏览次数:104  
标签:filp 27 Offer right 二叉树 root 节点 left

直达链接

直观的想法:我可以遍历并重建,但也很明显效率低下,可能达到O(N2),但或许可能拿来当作练习,检查自己遍历/重建二叉树的基本功
不过现在先想想有没有效率更高的解法,我觉得重点应该是修改节点的两个指针

简单地画图分析后,我认为:

  1. 对于有两个孩子节点的节点,只需要将其左右孩子指针互换
  2. 对于只有一个孩子节点的节点,可以看作是将它与另一个空节点互换
  3. 叶子节点不处理

然后考虑怎么遍历这可树,以及翻转的顺序,这里我们应该自顶向下地处理。可以是层序、也可以先左后右、也可以先右后左
或许也有递归和迭代两种写法

递归


void filp(TreeNode* root) {
	if (!root) return;

	TreeNode* tempNode;
	if (root->left && root->right) {
		filp(root->left);
		filp(root->right);
		tempNode = root->left;
		root->left = root->right;
		root->right = tempNode;
	}
	else if (root->left) {
		filp(root->left);
		root->right = root->left;
		root->left = nullptr;
	}else {
		filp(root->right);
		root->left = root->right;
		root->right = nullptr;
	}
}

// 翻转二叉树
TreeNode* mirrorTree(TreeNode* root) {
	TreeNode* node = root;
	filp(node);
	return root;
}

标签:filp,27,Offer,right,二叉树,root,节点,left
From: https://www.cnblogs.com/yaocy/p/16726173.html

相关文章

  • 关爱2700多万听障者,手语服务助力无声交流
    如果有一天,周遭的世界突然变得很安静,动听美妙的音乐,在你看来只是沉寂;振奋人心的演讲,对你而言只是默剧;大自然的千里莺啼,于你来说也只是画卷。你会不会感到害怕?而有这么一群......
  • 力扣106 构造二叉树
      class Solution {public:    TreeNode* buildTree(vector<int>& inorder, vector<int>& postorder) {    return reBuild(inorder, postorder);......
  • 力扣101 对称二叉树
        class Solution {public:    bool isSymmetric(TreeNode* root) {    if (root == nullptr)        return true;    retur......
  • feign.RetryableException: iZuf627hz8vloz1wtzgxzdZ executing GET http://ip-servic
    问题就是通过feign调用接口的时候,去注册中心获取服务位置的时候,拿了服务器的实例名,这是微服务没法处理服务提供者这样配置eureka.instance.prefer-ip-address=trueeure......
  • 25th-27th 2022/7/28,2022/7/29,2022/7/30 模拟赛总结15-17
    首先这次是补,因为有个垃圾将我的总结删了它的名字不配出现在我的总结中这三次其实都不算好主要问题是没睡好,读题不仔细以及并没有拼尽全力去打这几点总结应该注重休......
  • 28th 2022/7/27 USACO第二部分之一总结
    发现自己的能力再一次提升,真是好消息在DP方面更加熟练在模拟方面掌握了更多方法,更加成熟这就是热爱信息学带来的恩赐以后不畏困难,勇敢逾越山岭,这才是青春!路在脚下,梦......
  • CF627F Island Puzzle.
    容易观察到一次操作是将\(0\)移动到一个相邻的节点上,而且操作可逆转。所以对于不加边的情况方案是唯一的,直接模拟一下看看是不是相等的就好。对于加一条边来说,我们先将......
  • 基于SX1278/SX1276芯片的LoRa技术知识详解
    载波频率:载波频率就是没有调制数据的纯射频信号,用来载送信号的频率,在这个频率的基础上进行移频键控的调制输出无线信号,通常说发射频率就是指载波频率。lora扩频因子:扩频......
  • 力扣_剑指Offer_个人解题资料
    day01剑指Offer09.用两个栈实现队列:题目描述:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入整数和在队列......
  • leetcode 144. Binary Tree Preorder Traversal 二叉树展开为链表(中等)
    一、题目大意给你二叉树的根节点root,返回它节点值的前序遍历。示例1:输入:root=[1,null,2,3]输出:[1,2,3]示例2:输入:root=[]输出:[]示例3:输入:root=......