题目:试编写一个算法将一颗二叉树的所有节点的左右子树进行交换。
分析:
        我们仍然可以采用递归的方式进行交换。

代码如下:

struct biTree {char data;struct biTree *lchild;struct biTree *rchild;
};
#include <stdio.h>
#include <stdlib.h>
void swapTree(biTree *T) {//其本质就是从叶子节点开始进行交换,一路推进到根节点struct biTree *p = T,*t;if (!p) return;if (!p->lchild&&!p->rchild) {//如果没有左右孩子,就不需要交换了,直接返回return;}else {swapTree(p->lchild);//交换左子树swapTree(p->rchild);//交换右子树t = p->lchild;p->lchild = p->rchild;p->rchild = t;}
}
int main() {int num;struct biTree *T = (struct biTree*)malloc(sizeof(struct biTree));biTree *create(biTree *);void inOrder(biTree *);T = create(T);//创建一颗二叉树inOrder(T);printf("\n");swapTree(T);inOrder(T);return 0;
}

舞台再大,你不上台,永远是个观众。平台再好,你不参与,永远是局外人。能力再大,你不行动,只能看别人成功!没有人会关心你付出过多少努力,撑得累不累,摔得痛不痛,他们只会看你最后站在什么位置,然后羡慕或鄙夷。

交换二叉树的每个节点的左右子树相关推荐

  1. 交换二叉树中所有结点的左右子树的位置

    #include<stdlib.h> #include<stdio.h> #include<stack> #define N 50 using namespace ...

  2. 设计一个镜面影射算法,将一个二叉树的每个节点的左,右子结点交换位置

    #define OK 1 #define ERROR 0 #include<stdio.h> #include<stdlib.h> typedef char TElemType ...

  3. 数据结构:(翻转二叉树) 若二叉树采用二叉链表作存储结构,要交换其所有分支结点的左右子树的位置,采用()遍历方法最合适

    题目 若二叉树采用二叉链表作存储结构,要交换其所有分支结点的左右子树的位置,采用()遍历方法最合适?(北京航空航天大学1999,北京工业大学2016) A. 前序 B. 中序 C. 后序 D. 层次 ...

  4. 查找树的指定层级_非递归层次遍历方法实现二叉树中指定节点的层次数查找

    数据结构教材中,提供了基于队列实现一个二叉树的非递归层次遍历算法.但对于一个任意二叉树,如果要查找其中任何一个节点所在的层次数,教科书中并没有给出基于层次遍历的非递归算法.鉴于层次遍历算法比较容易理解 ...

  5. 剑指Offer之寻找二叉树下一个节点

    寻找二叉树下一个节点 1.题目描述 2.题目理解 1.题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针. ...

  6. 二叉树:叶节点的一些操作

    目录 1.求叶子节点之和 2.求叶子节点的父节点之和 3.求左叶子节点 leetcode404 4.层数最深叶子节点之和leetcode1302 5.层数最浅叶子节点之和 6.删除给定值的叶子节点le ...

  7. 二叉树任意两节点之间的最短距离

    public class 二叉树任意两节点之间的路径 {public static void main(String[] args) {TreeNode node = new TreeNode(1); ...

  8. 二叉树的堂兄弟节点判断001

    1.描述 993在二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1 处. 如果二叉树的两个节点深度相同,但父节点不同,则它们是一对堂兄弟节点. 我们给出了具有唯一值的二 ...

  9. 993. 二叉树的堂兄弟节点

    在二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1 处. 如果二叉树的两个节点深度相同,但父节点不同,则它们是一对堂兄弟节点. 我们给出了具有唯一值的二叉树的根节点 r ...

最新文章

  1. R语言-向量自回归模型VAR的实现
  2. 2、ES5的严格模式use strict
  3. Linux监控工具Spotlight on Unix
  4. 数商云DMS经销商管理系统解决方案:DMS系统实现业务全渠道、销售数据采集
  5. Cmake入门(1)cmake安装,创建第一个工程,引入头文件
  6. 《杂记》- 之- 使用windows终端命令查看文件的MD5
  7. NBU备份Vmware
  8. 官网和网盘,VS2015安装详细教程(带图解+下载地址+超详细)
  9. 微信小程序登录,后端如何处理?
  10. java cobar_Cobar源码解析(二)
  11. [转]用python来开发webgame服务端(3)
  12. 从我的历程谈谈该如何学习
  13. thinkphp5.0漏洞修复
  14. 传递给printf的额外参数
  15. nRF52832 GATT 自定义Service/Characteristic
  16. [BZOJ3240][Noi2013]矩阵游戏 快速幂
  17. debian apache2不执行php,Debian下Apache2的安装与配置
  18. 为什么工资高的程序员很少炫富?
  19. ACM里的期望和概率问题 从入门到精(入)通(土)
  20. 用jk触发器构成二分频电路_JK触发器地应用设计.ppt

热门文章

  1. 原生ajax请求的五个步骤
  2. python的变量的命名规则以及定义
  3. 神奇的applycall
  4. PHP socket
  5. 单点登录的原理与简单实现
  6. dipole antenna simulation by HFSS
  7. 浅析概率中的频率学派观点和贝叶斯学派观点
  8. linux string
  9. Android获取MAC地址
  10. Cassandra数据读取机制