【33】二叉树的镜像

来源:互联网 发布:绿尾真假辨别技巧知乎 编辑:程序博客网 时间:2024/06/07 20:57

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

他可以让抽象问题具体化。
有不少数据结构比如二叉树和二维数组以及链表都可以用这种思路来做。

题目:

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

二叉树类

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面试题汇总

微信订阅号二维码如下:

这里写图片描述

1 0
原创粉丝点击