您的位置:首页 > 其它

100题15输入一颗二元查找树,把该树转化为它的镜像

2013-08-21 19:51 295 查看
即在转化后的二元查找树中,左子树的结点都大于右子树的结点

迭代算法可以用栈来实现,可以把结点的左右子树的根都压入栈。

印象中关于树的很多题目的非递归实现均可以用stack来实现

定义一个swap函数交换树的左右子节点

void swap(Node *l,Node *r){

Node *temp=l;

l=r;

r=temp;

}

void mirror(Node *root){

if(root==NULL)return;

stack<Node*> s;

s.push(root);

while(!s.empty()){

Node *t=s.pop();

swap(t->left,t->right);

if(t->left!=NULL)s.push(t->left);

if(t->right!=NULL)s.push(t->right);

}

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