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);
}
}
迭代算法可以用栈来实现,可以把结点的左右子树的根都压入栈。
印象中关于树的很多题目的非递归实现均可以用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);
}
}
相关文章推荐
- 微软100题15题(输入一颗二元查找树,将该树转换为它的镜像)
- 【java 面试100】15 :输入一颗二元查找树,将该树转换为它的镜像
- 微软面试之15题 输入一颗二元查找树 将该树转化为他的镜像
- 15 输入一颗二元查找树,将该树转换为它的镜像
- [编程之美-15]输入一颗二元查找树将该树转换为它的镜像
- No15_输入一颗二元查找树,将该树转换为它的镜像,
- 15.输入一颗二元查找树,将该树转换为它的镜像, 即在转换后的二元查找树中,左子树的结点都大于右子树的结点, 用递归和循环两种方法完成树的镜像转换
- 15、输入一颗二元查找树,将该树转换为它的镜像
- 输入一颗二元查找树,将该树转换为它的镜像(15)
- No15、输入一颗二元查找树,将该树转换为它的镜像
- 【微软100题】输入一颗二元查找树,将该树转换为它的镜像
- 每天学习一算法系列(15)(输入一颗二元查找树,将该树转换为它的镜像)
- 15.输入一颗二元查找树,将该树转换为它的镜像
- 输入一颗二元查找树,将该树转换为它的镜像
- 输入一颗二元查找树,将该树转换为它的镜像
- 输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。 用递归和循环两种方法完成树的镜像转换。
- 输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点
- 题目:输入一颗二元查找树,将该树转换为它的镜像,
- 微软算法100道题-----输入一颗二元查找树,将该树转换为它的镜像, 即在转换后的二元查找树中,左子树的结点都大于右子树的结点
- 微软算法100道题-----输入一颗二元查找树,将该树转换为它的镜像, 即在转换后的二元查找树中,左子树的结点都大于右子树的结点