![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode_tree
文章平均质量分 78
walkersteve
了解,认识
展开
-
【LeetCode】96. Unique Binary Search Trees-唯一二叉排序树的个数
一、描述: 二、思路: BST(二叉排序树):中序遍历的结果为非递减序列,并且节点(个数和值)相同的不同二叉树的中序遍历结果都相同; 当左子树的节点个数确定后,右子树的个数也随之确定; 当节点个数为0或1时,二叉树只有1种,表示为f(0)=1,f(1)=f(0)*f(0); 当节点个数为2时,总的种类数=左子树为空f(0)*右子树不为空f(1)+左子树不为空f(1)*右子树为空f(0),即f(0原创 2017-03-28 10:38:24 · 724 阅读 · 0 评论 -
【LeetCode】107. Binary Tree Level Order Traversal II-二叉树水平顺序遍历2
一、描述: 二、思路: 同LeetCode 102,只是最后定义一新的List集合,逆序添加并返回 三、代码: 1 /** 2 * Definition for a binary tree node. 3 * public class TreeNode { 4 * int val; 5 * TreeNode left; 6 * TreeNode r原创 2017-03-28 10:37:57 · 242 阅读 · 0 评论 -
【LeetCode】108. Convert Sorted Array to Binary Search Tree-有序数组转换为平衡二叉搜索树(平衡二叉排序树)
一、描述: 二、思路: 二叉查找树(Binary Search Tree):(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树(来自百度百科); 平衡二叉树(Balanced Binary Tree):它是一原创 2017-03-28 10:37:52 · 253 阅读 · 0 评论 -
【LeetCode】199. Binary Tree Right Side View-二叉树右视图结点
一、描述: 二、思路: 输出二叉树右视图所有结点,即输出每一层的最后一结点; 水平面上,从右向左能看到的结点构成的图形,依次输出。原题样例二叉树中,右视图能看到的结点从上而下排成一列,依次是1-3-4; 以二叉树最大深度作为循环条件,使用Queue队列存储每一层的结点,并输出每一层最后一结点; 类似于LeetCode 513 三、代码: 1 /** 2 * Definition for原创 2017-03-28 10:37:45 · 454 阅读 · 0 评论 -
【LeetCode】513. Find Bottom Left Tree Value-查找二叉树最左下角元素
一、描述: 二、思路: 使用队列Queue按序(从左至右)存储每一层的结点,若不是最后一层,则在添加完下一层全部结点后,将上一层结点全部移除,直到最后一层,此时获取队首结点,即为所求; 如何判断当前层是不是最后一层,可以通过二叉树的深度来控制; 故该思路需要两个方法,方法一获取深度,方法二进行每一层结点的压入和移除,用到BFS。 注:代码略长,只是第一次想到的解法 三、代码: 1 /**原创 2017-03-28 10:37:42 · 341 阅读 · 0 评论 -
【LeetCode】102. Binary Tree Level Order Traversal-二叉树水平顺序遍历
一、描述: 二、思路: 二叉树或一般树的水平层次遍历,可以使用BFS(广度搜素)算法,使用队列Queue标记每一层的结点元素; Queue:先进先出, 后进后出。可以保证每一层遍历时的结点顺序; BFS:类似于电影中的病毒传染,先感染靠近自己的,再由易感染层感染更外层…(我理解的就是这么个理); 该题二叉树中,先把根结点压入队列,当队列不为空时,移除队首结点,并判断该结点的左右子树中有无非空结点原创 2017-03-28 10:37:37 · 275 阅读 · 0 评论 -
【LeetCode】145. Binary Tree Postorder Traversal-二叉树后序遍历
一、描述: 二、思路: 二叉树后序遍历:1访问左子树;2访问右子树;3访问根结点;如: 遍历后的结点序列中,最后一个结点是二叉树中的起始根结点; 递归实现,结点为空是递归结束条件。 三、代码: 1 /** 2 * Definition for a binary tree node. 3 * public class TreeNode { 4 * int val; 5原创 2017-03-28 10:37:34 · 287 阅读 · 0 评论 -
【LeetCode】144. Binary Tree Preorder Traversal-二叉树先序遍历
一、描述: 二、思路: 二叉树先序遍历:1访问根结点;2访问左子树;3访问右子树;如: 递归实现,结点为空时递归结束 三、代码: 1 /** 2 * Definition for a binary tree node. 3 * public class TreeNode { 4 * int val; 5 * TreeNode left; 6 *原创 2017-03-28 10:37:31 · 224 阅读 · 0 评论 -
【LeetCode】94. Binary Tree Inorder Traversal-二叉树中序遍历
一、描述: 二、思路: 二叉树中序遍历:1访问左子树;2访问根结点;3访问右子树;如: 中序遍历后得结点序列中,根结点一直处于其左右子树的中间位置,如12、23、13; 递归实现,结点为空时,递归结束。 三、代码: 1 /** 2 * Definition for a binary tree node. 3 * public class TreeNode { 4 * i原创 2017-03-28 10:37:28 · 255 阅读 · 0 评论 -
【LeetCode】101. Symmetric Tree-对称树/镜像树
一、描述: 对称树/镜像树:关于轴对称,每个结点绕轴旋转180度后和原树相同 二、思路: 属于二叉树,原理同LeetCode 100.Same Tree,递归解决; 假设T1,T2是用一棵二叉树的两个引用: 返回true:T1、T2均为空或T1的左子树等于T2的右子树且T1的右子树等于T2的左子树; 返回false:T1不等于T2; 递归调用,T1==null&&T2==null为递归结束条件原创 2017-03-28 10:37:24 · 245 阅读 · 0 评论 -
【LeetCode】100. Same Tree-相同树
一、描述: 二、思路: 属于二叉树类型,使用递归解决; 返回false:一棵树为空,且另一棵树不为空; 返回true两种情况:1两棵树均为空;2两棵树均不为空,且对应位置的结点完全相同; 递归调用,两树均为空是递归结束条件。 三、代码: 1 /** 2 * Definition for a binary tree node. 3 * public class TreeNode {原创 2017-03-28 10:37:20 · 207 阅读 · 0 评论 -
【LeetCode】110. Balanced Binary Tree-判断是否为平衡二叉树
一、描述: 二、思路 平衡二叉树(Balanced Binary Tree):又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树; 通过每一棵左右子树的深度判断子树是否为平衡二叉树,只有当所有的子树是平衡二叉树时,才能得出整棵树是平衡二叉树; 故函数方法中有两种判断,1是空树?2左右两个子树的高度差的原创 2017-03-28 10:38:03 · 254 阅读 · 0 评论 -
【LeetCode】222. Count Complete Tree Nodes-完全二叉树的结点个数
一、描述: 二、思路: 完全二叉树; 对于整棵二叉树,从根结点出发,一直沿左下方向遍历树的深度是l,一直沿右下方向遍历的深度是r;则有两种情况: 1、l == r,左右深度相等,一定是完全二叉树,即满二叉树,结点个数为(2^l-1)或(2^r-1); 2、l != r,只有一种情况:在二叉树的倒数第二层,某个父结点只有左叶子结点而无右叶子结点,及l=r+1。等价的说,将这一个多余的左叶子原创 2017-03-28 10:38:16 · 227 阅读 · 0 评论 -
【LeetCode】98. Validate Binary Search Tree -判断是否为二叉排序树
一、描述: 二、思路: 二叉排序树(BST),中序遍历的结果一定是非递减序列(来自百度百科); 本题中对于BST的定义是要么大于,要么小与,即遍历结果只能是递增序列,故可以通过判断中序遍历的结果序列是否是递增序列,来判断是否为合法BST; 另一种方法是使用递归; 三、代码: 1、非递归,通过中序遍历结果判断: /** * Definition f原创 2017-03-29 00:44:17 · 268 阅读 · 0 评论