题目描述 :输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。 解法 1: 递归 递归的写法非常直观。对于一棵二叉树来说,它的高度等于左右子树的高度最大值,加上 1。 代码实现如下: 解法 2: 层序遍历 按照二叉树的“层 ...
分类:
编程语言 时间:
2020-04-09 10:33:52
阅读次数:
74
以二叉链表作为二叉树的存储结构,交换二叉树中每个结点的左孩子和右孩子。 输入格式: 输入二叉树的先序序列。 提示:一棵二叉树的先序序列是一个字符串,若字符是‘#’,表示该二叉树是空树,否则该字符是相应结点的数据元素。 输出格式: 输出有两行: 第一行是原二叉树的中序遍历序列; 第二行是交换后的二叉树 ...
分类:
其他好文 时间:
2020-04-08 12:06:10
阅读次数:
932
// 面试题55(二):平衡二叉树 // 题目:输入一棵二叉树的根结点,判断该树是不是平衡二叉树。如果某二叉树中 // 任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 #include <cstdio> #include "BinaryTree.h" // 方法1 int Tree ...
分类:
其他好文 时间:
2020-04-07 20:52:04
阅读次数:
66
1 #include<stdio.h> 2 #define MAXN 31 3 int a[MAXN],n,flag[MAXN]; 4 void deal(); 5 int main(){ 6 scanf("%d",&n); 7 a[0] = n; 8 flag[0] = n; 9 deal(); ...
分类:
其他好文 时间:
2020-04-01 17:57:49
阅读次数:
66
1 堆 堆是一个二叉堆的数组,可以被看成一个近似的完全二叉树。 有最大堆和最小堆的性质。最大堆就是某个节点的值至多于其父节点一样大。最小堆中最小的元素都存放在根节点中。 下面放上最小堆的伪代码: MIN-HEAPIFY(A, i) l = LEFT(i) r = RIGHT(i) if l <= A ...
分类:
编程语言 时间:
2020-03-30 12:51:32
阅读次数:
106
解题思路: 1、定义一个结构体,来存储二叉排序树 typedef struct { int data; int left; int right; int parent; int h; } T; 2、再定义一个结构体,将输入数据存入 typedef struct { int data; int pos ...
分类:
其他好文 时间:
2020-03-27 12:49:50
阅读次数:
125
2.(101)对称二叉树 2020年3月20日 Symmetric Tree Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). For example, thi ...
分类:
其他好文 时间:
2020-03-21 21:50:27
阅读次数:
86
输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 例如,给出 返回如下的二叉树: 限制: 0 <= 节点个数 <= 5000 解题思路 1. 根据前序序列的第一个元素建立根结点; 2. 在中序序列中找到该元素,确定根结点的左右子树的中序序 ...
分类:
其他好文 时间:
2020-03-17 19:34:31
阅读次数:
47
1:题目描述 请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / ...
分类:
其他好文 时间:
2020-03-17 19:32:02
阅读次数:
71