您的位置:首页 > 其它

【33】二叉树的镜像

2016-05-13 20:04 281 查看

画图是遇到算法问题的一种解题思路。

他可以让抽象问题具体化。

有不少数据结构比如二叉树和二维数组以及链表都可以用这种思路来做。

题目:

完成一个函数,输入一颗二叉树,输出它的镜像

二叉树类

class BinaryTreeNode{
int mValue;
BinaryTreeNode nLeft;
BinaryTreeNode mRight;
}


思路:

前序遍历,如果不是空,只需要递归的交换子树就可以了

如图:



代码:

void mirrorTree(BinaryTreeNode pNode){
if(pNode == null || (pNode.mLeft == null && pNode.mRight == null)){
return;
}
BinaryTreeNode tmp = pNode.mLeft;
pNode.mLeft = pNode.mRight;
pNode.mRight = tmp;
if(pNode.mLeft != null){
mirrorTree(pNode.mLeft);
}
if(pNode.mRight != null){
mirrorTree(pNode.mRight);
}
}


安利一个面试题汇总的微信订阅号。每天推送经典面试题和面试心得技巧,都是干货!

微信订阅号名称:IT面试题汇总

微信订阅号二维码如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: