剑指offer之二叉树的镜像
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之二叉树的镜像相关推荐
- 《LeetCode力扣练习》剑指 Offer 27. 二叉树的镜像 Java
<LeetCode力扣练习>剑指 Offer 27. 二叉树的镜像 Java 一.资源 题目: 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 例如输入: 4 / 2 7 / \ / ...
- 【LeetCode】剑指 Offer 27. 二叉树的镜像
[LeetCode]剑指 Offer 27. 二叉树的镜像 文章目录 [LeetCode]剑指 Offer 27. 二叉树的镜像 一.递归法 二.辅助栈(或队列) 一.递归法 根据二叉树镜像的定义,考 ...
- 算法leetcode|剑指 Offer 27. 二叉树的镜像|226. 翻转二叉树(rust很强)
文章目录 剑指 Offer 27. 二叉树的镜像|226. 翻转二叉树: 样例 1: 限制: 分析 题解 rust go c++ java python 原题传送门:https://leetcode. ...
- JZ27 [剑指 Offer 27] 二叉树的镜像
二叉树的镜像 Category Difficulty Likes Dislikes lcof Easy (79.61%) 311 - 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 例如输入: ...
- 【Java】 剑指offer(27) 二叉树的镜像
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 思路 画图可 ...
- 剑指offer 27. 二叉树的镜像
声明:本系列博客是对何海涛<剑指offer>的关键点总结. 1.树的镜像 定义:树的根结点相同,但是左右两个子节点交换了位置 2.解题思路 1)前序遍历树的每一个结点: 2)如果遍历到的节 ...
- 《剑指Offer》 二叉树的镜像
题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ ...
- 剑指offer——27.二叉树的镜像
题目: 操作给定的二叉树,将其变换为源二叉树的镜像. 知识点: 无 注意: 无 代码实现: 遍历所有节点,交换当前节点的左右子节点,递归至叶子节点 /*二叉树镜像*/ void mirror(Bina ...
- 剑指Offer 27—二叉树的镜像
题意 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 力扣 法1-递归 二叉树镜像定义: 对于二叉树中任意节点 root ,设其左 / 右子节点分别为 left, right:则在二叉树的镜像中 ...
- 剑指 Offer 27. 二叉树的镜像【无取巧解法,易于理解!】
看题解时,很多大牛用很少的代码就完成了AC,但可能看了很多遍也看不懂,因此萌生了写一种最"笨"最完整的代码的想法,这样大家可以通过我的代码入门,看懂了再去挑战大牛们的简洁解法. 请 ...
最新文章
- oom 如何避免 高并发_【转载】如何避免OOM?看Greenplum的最佳实践
- 彻底解决swf浏览器的缓存问题
- POJ - 3347 Kadj Squares(思维+几何)
- 成长 | 《大厂晋升指南》学习总结(下)
- mysql组件化_MySql笔记
- Spring4.x(3)---工厂模式设计IOC容器
- wps中将文档输出为pdf_
- 现场看女排vs日本了
- CPU指令执行及流水线(超标量、多发射、乱序执行)
- 语音控制c语言程序,基于52单片机的智能家居语音控制系统电路设计(含源程序+原理图)...
- 20145322何志威 Exp8 Web基础
- html5显示文件后缀,如何显示文件后缀名
- Linux文件打包与压缩
- 【数据库习题原理 10】数据库恢复技术
- 7-2 你今天刷快手了吗
- 关于lvm扩容的方式
- 2020 年 7 月编程语言排行榜
- Java架构师成长之道之Java架构师技术栈
- java.io和java.nio性能简单对比
- 流量定向转通用片面教程
热门文章
- Dapr牵手.NET学习笔记:可观测性-分布式跟踪
- 不止 Windows 10!Windows 7/8 也能免费升级到 Windows 11
- 使用 ML.NET 进行保险价格预测
- 如何在 ASP.Net Core 中使用 Lamar
- 帮助阅读源码的8个技巧
- C#刷剑指Offer | 从上到下打印二叉树
- 程序员过关斩将--解决分布式session问题
- C# 9.0 新特性之 Lambda 弃元参数
- 干货|亲测有效的N倍学习效果笔记法
- 番茄日志发布1.0.3版本-增加Kafka支持