您的位置:首页 > 编程语言 > C语言/C++

二叉树反转

2016-03-06 15:27 246 查看
二叉树反转,递归实现比较简单,只需要交换父母节点的左右子节点就行,递归反转左右子节点。

homebrew作者面试google时解不出这道题而被拒,本文给出c实现的二叉树反转,包括前中后遍历,二叉树的创建等。

反转代码如下:

void inverseBtree(tnode* root)
{
if (NULL==root) {
return;
}

tnode* tmp=root->left;
root->left=root->right;
root->right = tmp;

inverseBtree(root->left);
inverseBtree(root->right);
}


示例输入输出如下:

1
2
3
-1
4
-1
5
-1
6
7
-1
-1
8
-1
-1
-1
-1


12345678
34576821
78654321
******
12345687
12867543
87654321


树的结构如下:



代码链接:https://github.com/lilingyu/btreeInversion
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 二叉树 面试