【100题】第十五题(树的镜像问题)

一,题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归循环两种方法完成树的镜像转换。  
       例如输入:
              8
            /    \
          6    10
        /  \    /   \ 
      5   7 9   11

      输出:
            8
          /    \
        10     6
        /   \    /  \  
     11  9   7   5

定义二元查找树的结点为:
struct BSTreeNode // a node in the binary search tree (BST)
{
  int m_nValue; // value of node
  BSTreeNode *m_pLeft; // left child of node
  BSTreeNode *m_pRight; // right child of node
};

二,分析:

       采用递归方法,比较简单。主要是采用循环方法时候采用压栈的方式来模拟递归

三,源码(递归):

源码(循环):




posted @ 2012-02-22 16:27  Java EE  阅读(255)  评论(0编辑  收藏  举报