拖到下午才写剩下这两个函数,都折腾了好久。 中序遍历的这个版本是不用栈的,用一个flag记住上一步是否是从左子树操作完回溯上来的。如果不是,那么左子树、自己、右子树都没有访问,就先深入左子树,向左下行。如果是回溯的(或者…
标签:二叉树
哈夫曼树、AVL树
1.哈夫曼树 给定n个权值作为n的叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。 构造哈…
二叉树总结
什么是二叉树? 引用自百度百科: 在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree),同样的左右子树也都是二叉树. 前言…
LeetCode二叉树(Tree)小结
一,定义 一棵二叉树中含有n(n>=0)个节点,当n=0时,他是一棵空二叉树; 当n>0时,他由一个根节点和两棵互不相交的称为左子树和右子树的二叉树组成. ** 二叉树的定义也是递归的 ** 二,二叉树常见的…
二叉树遍历的三种方法的非递归版本
二叉树遍历的三种方法的非递归版本 二叉树遍历虽然是一个老生常谈的问题,但在面试中经常遇见,最近在刷leetcode的时候碰到了用前序,中序和后序遍历二叉树,遂来总结一下思路。 前序遍历 题目参考leetcode 144 …
637. Average of Levels in Binary Tree 二叉树每层平均值
Given a non-empty binary tree, return the average value of the nodes on each level in the form of an array. 给定…
问题[○○○]:二叉搜索树的概念,时间复杂度多少?
采用二叉树链表作为存储结构,每个左节点均小于父节点,每个右节点均大于父节点 时间复杂度:O(log2(n))
二叉查找(排序)树 算法简述及java实现
二叉查找树 简述 二叉查找树是一颗二叉树,其每个节点都含有可比较的Key值及一个Value值。其满足其上每个节点的键都大于其左子树中任意节点的键,小于其右子树中任意节点的键。 复杂度 二叉查找树结合了链表的插入灵活性及有…
HDU 5524 (完全二叉树节点种类分析)
There is a complete binary tree with N nodes.The subtree of the node i has Ai nodes.How many distinct numbers …
C++ 根据先序和中序构造二叉树
struct Node{ char val; Node* left; Node* right; Node(char a): val(a), left(NULL), right(NULL){} }; void buildB…
lintcode 二叉树的层次遍历||
给出一棵二叉树,返回其节点值从底向上的层次序遍历(按从叶节点所在层到根节点所在的层遍历,然后逐层从左往右遍历) 样例 给出一棵二叉树 {3,9,20,#,#,15,7}, 3 / 9 20 / 15 7 按照从下往上的层…
Day18 剑指offer:二叉树镜像
操作给定的二叉树,将其变换为源二叉树的镜像。 /** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; p…