MyAVLTree.h #pragma once #include <memory.h> // IsEmpty():若树为空,返回true,否则返回false // GetDepth():获得树的深度 …
分类:树
面试题39—相关题目(判断平衡二叉树)
**题目:输入一颗二叉树的根节点,判断该树是不是平衡二叉树。 代码示例:** #include "BinaryTree.h" #include<iostream> using namespace std; /…
leetcode笔记—判断查找二叉树
首先说明一下二叉树和二叉搜索树的区别。二叉树指这样的树结构,它的每个结点的孩子数目最多为2个;二叉搜索树是一种二叉树,但是它有附加的一些约束条件,这些约束条件必须对每个结点都成立: 结点node的左子树所有结点的值都小于…
剑指offer之二维数组的查找,替换空格,从尾到头打印链表,重建二叉树,栈实现队列
1、二维数组的查找: 问题描述:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整…
有序数组转换为平衡二叉树
抓住两个条件:有序数组,平衡二叉树 根据有序数组可以利用二分查找对数组进行均匀划分; 平衡二叉树是左右子树的深度差控制在1以内。 具体JAVA程序如下
平衡二叉树的判断-->后序遍历
题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 此题有解法一:依次从根节点开始,判断所有节点的左右子树是否平衡,但这样一来,排在底层的节点可能要被多次重复遍历,所以此方法复杂度高,不推荐。 解法二:后序遍历,左…
有序数组构建平衡二叉树
#include <stdio.h> TreeNode *sortedArrayToBST(vector<int> &num){ if(num.size()==0) return NULL…
[树]红黑树
很早以前写过一个c版本的红黑树,现在以c++重写之,并引入面向对象,有时间的话再实现线程安全版本. 原理 rb-tree是自平衡搜索树,整个结构是位于内存中的,中心思想是每次插入或者删除key时,维护好下面的5条性质,其…
二叉树的各种实现(创建,叶子结点数,是否为堆,完全二叉树,二叉查找树,交换左右孩子)
import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; import java.util.Stack; public …
平衡二叉树(AVL树)的简单实现
#include < stdlib.h > template < typename T > class CAVLTree; template < typen…
平衡二叉树的左右旋
/** * 右旋(左子树比右子树高2,并且新插入的元素在左子树的左边) * 此时以左子树(k1)为轴,它的根(k2)进行右旋 * 可以理解为它的根在它的右边,所以右旋(在右边旋转) * k2 k1 * / \ / \ *…
LeetCode 判断一个数是否为平衡二叉树 Balanced Binary Tree
简单题,以前居然没有贴上来 package Level1; import Utility.TreeNode; /** * Balanced Binary Tree Given a binary tree, determi…