(精)(递归遍历的延伸)交换二叉树的左右子树

发布时间:2017-7-1 10:50:56编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"(精)(递归遍历的延伸)交换二叉树的左右子树 ",主要涉及到(精)(递归遍历的延伸)交换二叉树的左右子树 方面的内容,对于(精)(递归遍历的延伸)交换二叉树的左右子树 感兴趣的同学可以参考一下。

给这个函数传的是指针,如果传整个结构,参数堆栈的效率较低

悟:单链表,恋栈,链队,二叉树的链式存储,传递的参数都是指针

顺序栈--顺序表-循环队列-传递的都是整个结构进去

做题一定要经过自己动脑,不要去看答案而试图去记住答案,一定要自己代码一行一行的写,数学题一步一步的写,经过自己深入动脑,这样才能理解好问题

 完全自己研发出来,和二叉树的遍历基本相似

void exchange99(BTNode *T){   BTNode *b;   //临时作为交换的变量    if(T==NULL || (T->lchild==NULL&&T->rchild==NULL) )        return; //为空或者是叶子结点-就不用交换了    b=T->lchild;    T->lchild = T->rchild;    T->rchild = b ;    exchange99(T->lchild);    exchange99(T->rchild);}

void exchange0(BTNode *T , BTNode *&b){    if(T==NULL)        return;    b=T;    exchange(T->lchild,b->rchild);    exchange(T->rchild,b->lchild);}

void exchange(BTNode *T , BTNode *&b){    if(T==NULL)        return ;    b=T;    exchange(T->lchild,b->lchild);    exchange(T->rchild,b->rchild);}

直接b=T就copy了这个二叉树,指向了同一棵二叉树


上一篇:NBU 还原windows ORACLE数据库
下一篇:在linux安装php

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款