zoukankan      html  css  js  c++  java
  • 2.二叉树的镜像

    一、题目

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

    二、算法及实现

    1.算法

      一个二叉树的镜像,他的左子树是原二叉树的右子树,而他的右子树是原二叉树的左子树,而他的子树也是如此。那么,为了得到二叉树的镜像,我们可以把二叉树的左右子树交换,对于其子树,也是如此。该算法用递归实现最符合要求。

    2.鲁棒性考虑

      对于二叉树Root为NULL指针的处理。

    3.实现

     1 void MirrorRecursively(BinaryTreeNode* pNode)
     2 {
     3     if (pNode == NULL)
     4         return;
     5 
     6     if (pNode->m_pLeft == NULL && pNode->m_pRight == NULL)
     7         return;
     8 
     9     BinaryTreeNode* tmp = pNode->m_pLeft;
    10     pNode->m_pLeft = pNode->m_pRight;
    11     pNode->m_pRight = tmp;
    12 
    13     MirrorRecursively(pNode->m_pLeft);
    14     MirrorRecursively(pNode->m_pRight);
    15 }
  • 相关阅读:
    SysRq组合键是一组"魔术组合键"
    iptables FTP脚本
    (转)SSH的端口转发
    进制转换
    指定的参数已超出有效值的范围
    静态类
    接口
    快捷键,移到最上层
    gitbook
    nginx服务无法停止(Windows)
  • 原文地址:https://www.cnblogs.com/wangjzh/p/4349841.html
Copyright © 2011-2022 走看看