1题目

求二叉树A的镜像,就是对称图,比如下面的树B是树A的镜像
比如:
              2                           2
   树A  3    5      树B        5     3
        1  4  2  3              3   2  4  1

2 代码实现

#include <stdio.h>#define true 1
#define false 0typedef struct Node
{int value;struct Node* left;struct Node* right;
} Node;void reverse_tree(Node *head)
{if (head != NULL){Node *temp = head->left;head->left = head->right;head->right = temp;reverse_tree(head->left);reverse_tree(head->right);}
}
void reverse_tree1(Node *head)
{if (head == NULL){return;}if (head->left == NULL && head->right == NULL){return;}Node *temp = head->left;head->left = head->right;head->right = temp;//if (head->left != NULL)reverse_tree(head->left);//if (head->right != NULL)reverse_tree(head->right);
}void printf_tree(Node *head)
{if (head != NULL){printf("val is: %d\n", head->value);printf_tree(head->left);printf_tree(head->right);}
}int main()
{/*              2*           3    5            5*         1  4  2  3        2   3*       */Node head1, node1, node2, node3, node4, node5, node6;Node head2, node7, node8;head1.value = 2;node1.value = 3;node2.value = 5;node3.value = 1;node4.value = 4;node5.value = 2;node6.value = 3;head1.left = &node1;head1.right = &node2;node1.left = &node3;node1.right = &node4;node2.left = &node5;node2.right = &node6;node3.left = NULL;node3.right = NULL;node4.left = NULL;node4.right = NULL;node5.left = NULL;node5.right = NULL;node6.left = NULL;node6.right = NULL;head2.value = 5;node7.value = 2;node8.value = 3;head2.left = &node7;head2.right = &node8;node7.left = NULL;node7.right = NULL;node8.left = NULL;node8.right = NULL;printf_tree(&head1);printf("----\n");reverse_tree(&head1);printf_tree(&head1);
}

3 运行结果

val is: 2
val is: 3
val is: 1
val is: 4
val is: 5
val is: 2
val is: 3
----
val is: 2
val is: 5
val is: 3
val is: 2
val is: 3
val is: 4
val is: 1

剑指offer之二叉树的镜像相关推荐

  1. 《LeetCode力扣练习》剑指 Offer 27. 二叉树的镜像 Java

    <LeetCode力扣练习>剑指 Offer 27. 二叉树的镜像 Java 一.资源 题目: 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 例如输入: 4 / 2 7 / \ / ...

  2. 【LeetCode】剑指 Offer 27. 二叉树的镜像

    [LeetCode]剑指 Offer 27. 二叉树的镜像 文章目录 [LeetCode]剑指 Offer 27. 二叉树的镜像 一.递归法 二.辅助栈(或队列) 一.递归法 根据二叉树镜像的定义,考 ...

  3. 算法leetcode|剑指 Offer 27. 二叉树的镜像|226. 翻转二叉树(rust很强)

    文章目录 剑指 Offer 27. 二叉树的镜像|226. 翻转二叉树: 样例 1: 限制: 分析 题解 rust go c++ java python 原题传送门:https://leetcode. ...

  4. JZ27 [剑指 Offer 27] 二叉树的镜像

    二叉树的镜像 Category Difficulty Likes Dislikes lcof Easy (79.61%) 311 - 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 例如输入: ...

  5. 【Java】 剑指offer(27) 二叉树的镜像

    本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 思路 画图可 ...

  6. 剑指offer 27. 二叉树的镜像

    声明:本系列博客是对何海涛<剑指offer>的关键点总结. 1.树的镜像 定义:树的根结点相同,但是左右两个子节点交换了位置 2.解题思路 1)前序遍历树的每一个结点: 2)如果遍历到的节 ...

  7. 《剑指Offer》 二叉树的镜像

    题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ ...

  8. 剑指offer——27.二叉树的镜像

    题目: 操作给定的二叉树,将其变换为源二叉树的镜像. 知识点: 无 注意: 无 代码实现: 遍历所有节点,交换当前节点的左右子节点,递归至叶子节点 /*二叉树镜像*/ void mirror(Bina ...

  9. 剑指Offer 27—二叉树的镜像

    题意 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 力扣 法1-递归 二叉树镜像定义: 对于二叉树中任意节点 root ,设其左 / 右子节点分别为 left, right:则在二叉树的镜像中 ...

  10. 剑指 Offer 27. 二叉树的镜像【无取巧解法,易于理解!】

    看题解时,很多大牛用很少的代码就完成了AC,但可能看了很多遍也看不懂,因此萌生了写一种最"笨"最完整的代码的想法,这样大家可以通过我的代码入门,看懂了再去挑战大牛们的简洁解法. 请 ...

最新文章

  1. oom 如何避免 高并发_【转载】如何避免OOM?看Greenplum的最佳实践
  2. 彻底解决swf浏览器的缓存问题
  3. POJ - 3347 Kadj Squares(思维+几何)
  4. 成长 | 《大厂晋升指南》学习总结(下)
  5. mysql组件化_MySql笔记
  6. Spring4.x(3)---工厂模式设计IOC容器
  7. wps中将文档输出为pdf_‎
  8. 现场看女排vs日本了
  9. CPU指令执行及流水线(超标量、多发射、乱序执行)
  10. 语音控制c语言程序,基于52单片机的智能家居语音控制系统电路设计(含源程序+原理图)...
  11. 20145322何志威 Exp8 Web基础
  12. html5显示文件后缀,如何显示文件后缀名
  13. Linux文件打包与压缩
  14. 【数据库习题原理 10】数据库恢复技术
  15. 7-2 你今天刷快手了吗
  16. 关于lvm扩容的方式
  17. 2020 年 7 月编程语言排行榜
  18. Java架构师成长之道之Java架构师技术栈
  19. java.io和java.nio性能简单对比
  20. 流量定向转通用片面教程

热门文章

  1. Dapr牵手.NET学习笔记:可观测性-分布式跟踪
  2. 不止 Windows 10!Windows 7/8 也能免费升级到 Windows 11
  3. 使用 ML.NET 进行保险价格预测
  4. 如何在 ASP.Net Core 中使用 Lamar
  5. 帮助阅读源码的8个技巧
  6. C#刷剑指Offer | 从上到下打印二叉树
  7. 程序员过关斩将--解决分布式session问题
  8. C# 9.0 新特性之 Lambda 弃元参数
  9. 干货|亲测有效的N倍学习效果笔记法
  10. 番茄日志发布1.0.3版本-增加Kafka支持