码迷,mamicode.com
首页 > 其他好文 > 详细

二叉树的镜像—剑指offer

时间:2017-08-19 15:57:56      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:alt   class   镜像   lap   src   type   输出   null   递归   

题目:完成一个函数,输入一个二叉树,该函数输出它的镜像

技术分享
 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 typedef struct node
 4 {
 5     char value;
 6     struct node *lchild;
 7     struct node *rchild;
 8 }TreeNode,*Tree;
 9 //头插法创建二叉树
10 Tree CreateTree(Tree &t)
11 {
12     char ch;
13     scanf_s("%c", &ch);
14     if (ch == #)
15         t = NULL;
16     else
17     {
18         t = (Tree)malloc(sizeof(TreeNode));
19         if (!t)
20         {
21             printf("分配内存出错!");
22             return NULL;
23         }
24         t->value = ch;
25         CreateTree(t->lchild);
26         CreateTree(t->rchild);
27     }
28     return t;
29 }
30 //求二叉树镜像
31 void MirrorRecursively(Tree pNpde)
32 {
33     if (pNpde == NULL)
34         return ;
35     if (pNpde->lchild == NULL && pNpde->rchild == NULL)
36         return ;
37     Tree pTemp = pNpde->lchild;
38     pNpde->lchild = pNpde->rchild;
39     pNpde->rchild = pTemp;
40     if (pNpde->lchild)
41         MirrorRecursively(pNpde->lchild);
42     if (pNpde->rchild)
43         MirrorRecursively(pNpde->rchild);
44 }
45 //先序递归遍历
46 void PreOrder(Tree T)
47 {
48     if (T)
49     {
50         printf("%c",T->value);
51         PreOrder(T->lchild);
52         PreOrder(T->rchild);
53     }
54 }
55 int main()
56 {
57     Tree T;
58     printf("创建二叉树,‘#’代表空:");
59     CreateTree(T);
60     printf("先序遍历二叉树:");
61     PreOrder(T);
62     MirrorRecursively(T);
63     if (T)
64     {
65         printf("\n先序遍历镜像二叉树: ");
66         PreOrder(T);
67     }
68     else
69         printf("创建的树为空");
70     printf("\n");
71     return 0;
72 }
73 /*
74 创建二叉树,‘#’代表空:ABD##E##CF##G##
75 先序遍历二叉树:ABDECFG
76 先序遍历镜像二叉树: ACGFBED
77 请按任意键继续. . .
78 
79 创建二叉树,‘#’代表空:#
80 先序遍历二叉树:创建的树为空
81 请按任意键继续. . .
82 
83 */
View Code

 

二叉树的镜像—剑指offer

标签:alt   class   镜像   lap   src   type   输出   null   递归   

原文地址:http://www.cnblogs.com/xyzyj/p/7396614.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!