码迷,mamicode.com
首页 >  
搜索关键字:左右子树    ( 865个结果
java实现二叉排序树
什么是二叉排序树:二叉排序树或者是一颗空树,或者具有以下性质的二叉树: (1)若它的左子树不为空,则左子树上的所有节点的值都小于他的父节点的值; (2)若它的右子树不为空,则右子树上的所有节点的值都大于他的父节点的值; (3)它的左右子树也分别为二叉排序树; java实例: package com.test.linked; public class HeapSort { publi...
分类:编程语言   时间:2015-04-25 13:45:51    阅读次数:112
OJ练习26——T111 Minimum Depth of Binary Tree
求从根节点到叶子节点的最短路径。【思路】开始想到返回左右子树最短深度,测试发现对于一个根节点带一个孩子节点,其最短路径是2,不是最小深度1,此种特殊情况单独列出。【my code】int minDepth(TreeNode *root) { if(root==NULL) ...
分类:其他好文   时间:2015-04-24 08:56:48    阅读次数:114
OJ练习25——T110 Balanced Binary Tree
判断一棵树是否是平衡树。平衡数的意思是,树左右子树高度之差不能超过1.【思路】递归判断每个子树是否是平衡数,需要调用高度计算的函数。【my code】bool isBalanced(TreeNode *root) { if(root==NULL) return t...
分类:其他好文   时间:2015-04-23 17:17:21    阅读次数:181
二叉树
树型结构是一类重要的非线性数据结构,其中二叉树较为常用。二叉树的特点的每个节点至多只有两棵子树(寄即二叉树中不存在大于2的节点),并且二叉树有左右子树之分。 二叉树的属性:      1、二叉树有5种基本形态,(a)空二叉树 (b)仅有根节点的二叉树 (c) 右子树为空的二叉树 (d)左右子树均为非空的二叉树(e)左子树为空的二叉树 二叉树的性质;      性质1  在二叉树的第 i 层...
分类:其他好文   时间:2015-04-23 09:39:33    阅读次数:104
反转二叉树,即交换所有结点的左右子树,但不能使用递归方法。
反转二叉树,即交换所有结点的左右子树,但不能使用递归方法。 解析:既然不能使用递归那么可以使用栈,代码如下: #include #include #include #include #include using namespace std; typedef struct BinaryTreeNode { int m_nValue; Bin...
分类:其他好文   时间:2015-04-22 11:49:04    阅读次数:216
[LeetCode]Convert Sorted Array to Binary Search Tree
Given an array where elements are sorted in ascending order, convert it to a height balanced BST. 这道题要求根据一个有序的数组建立一棵二叉排序树。利用折半的思想,构造根节点,再递归构造左右子树。递归出口是数组中只含一个元素。TreeNode *sortedArrayToBST(vector &...
分类:其他好文   时间:2015-04-14 21:34:22    阅读次数:98
输出二叉树中随机两个结点的最小公共父结点
思路:当遇到一个结点是返回1,当左右子树都返回1的时候,即最小公共父节点。//二叉树的数据结构 typedef struct MyStruct { char data; struct MyStruct *leftChild; struct MyStruct *rightChild; }Node, *Tree; //查找方法 int findFirstFather(Tree r...
分类:其他好文   时间:2015-04-14 02:02:27    阅读次数:165
重建二叉树
题目:http://ac.jobdu.com/problem.php?pid=1385思路:前序遍历结果的第一个数字就是根节点,找到根节点在中序遍历中的位置,则该位置左边的即为左子树的中序遍历的结果。显然我们很容易就可以得到左右子树的前序和中序遍历结果,我们可以使用递归来构建。小知识:preorde...
分类:其他好文   时间:2015-04-08 12:25:26    阅读次数:124
leetcode_110_Balanced Binary Tree
思路: 走了好多弯路,最后才发现直接根据定义来就可以了,左右子树的深度不超过1且左右子树都是平衡二叉树,就是这么简洁明快。...
分类:其他好文   时间:2015-04-03 17:32:35    阅读次数:128
leetcode_105_Construct Binary Tree from Preorder and Inorder Traversal
思路: 1.将中序遍历序列和其对应的下标存储到一个map中,方便下面的查找 2.递归选取前序序列的第一个元素作为树的根节点,然后查找根节点在前序序列中位置inorderIndex,inorderIndex-startInorder可以得到左子树的长度 3.根据左子树的长度和startPreOrder可以求出前序序列中左子树的起始位置 4.从上面可以求出左右子树的前序序列和中序序列的起始位置,递归调用建树过程即可。 PS:其实,对于这道题,有更简单的方法,可根据按前序序列元素出现的顺序依次作为树的根节点进行...
分类:其他好文   时间:2015-04-03 15:17:20    阅读次数:133
865条   上一页 1 ... 68 69 70 71 72 ... 87 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!