树
文章平均质量分 58
Bryan要加油
这个作者很懒,什么都没留下…
展开
-
124.Binary Tree Maximum Path Sum 想不明白。。。。。
Given a binary tree, find the maximum path sum.The path may start and end at any node in the tree.For example:Given the below binary tree, 1 / \ 2 3Return 6.原创 2015-06-29 15:06:50 · 542 阅读 · 0 评论 -
98.Validate Binary Search Tree&检查是否为BST
Given a binary tree, determine if it is a valid binary search tree (BST).Assume a BST is defined as follows:The left subtree of a node contains only nodes with keys less than the node's key.Th原创 2015-06-29 11:35:29 · 628 阅读 · 0 评论 -
113.Path Sum II&二叉树中和为某一值的路径
程序员面试题精选100题(04)-二元树中和为某一值的所有路径[数据结构] /** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x原创 2014-03-19 09:57:49 · 672 阅读 · 0 评论 -
112.Path Sum
Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.For example:Given the below binary tree and sum原创 2014-03-10 21:33:17 · 500 阅读 · 0 评论 -
109. Convert Sorted List to Binary Search Tree
这题的关键是能找出当前链表的中间节点,然后再递归左右的子链表,开始的时候程序先计算链表长度,然后传入两个前后索引指针,最后每次递归找出中间节点即可。//http://www.cnblogs.com/remlostime/archive/2012/10/29/2744805.html/** * Definition for singly-linked list. * struct List原创 2015-04-21 10:56:09 · 571 阅读 · 0 评论 -
222. Count Complete Tree Nodes
ProblemGiven a complete binary tree, count the number of nodes.Definition of a complete binary tree from Wikipedia: In a complete binary tree every level, except possibly the last, is completely fill原创 2016-05-12 11:20:42 · 497 阅读 · 0 评论 -
105\106. Construct Binary Tree from Inorder and Postorder\Preorder Traversal&重建二叉树
ProblemGiven inorder and postorder traversal of a tree, construct the binary tree. 剑指offer中是给出二叉树的前序和中序遍历的结果,重建二叉树。Solution两题的思路是一样的。这里给出剑指offer中的分析。 在二叉树的前序遍历序列中,第一个数字总是树的根节点的值。在中序遍历序列中,根节点的值在序列的中原创 2016-05-04 10:25:55 · 384 阅读 · 0 评论 -
94. Binary Tree Inorder Traversal
Given a binary tree, return the inorder traversal of its nodes' values.For example:Given binary tree {1,#,2,3}, 1 \ 2 / 3return [1,3,2].Note: Recursive solution is tri原创 2014-02-28 11:39:36 · 910 阅读 · 0 评论 -
230.Kth Smallest Element in a BST
Given a binary search tree, write a function kthSmallest to find the kth smallest element in it.Note: You may assume k is always valid, 1 ≤ k ≤ BST's total elements.Follow up:What if the原创 2015-07-02 16:02:34 · 579 阅读 · 0 评论 -
House Robber Series
198. House RobberProblemYou are a professional robber planning to rob houses along a street. Each house has a certain amount of money stashed, the only constraint stopping you from robbing each of them翻译 2016-08-16 22:20:18 · 477 阅读 · 0 评论 -
110. Balanced Binary Tree
ProblemGiven a binary tree, determine if it is height-balanced.For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never dif原创 2016-08-22 20:06:09 · 369 阅读 · 0 评论 -
高度最小的BST&&108. Convert Sorted Array to Binary Search Tree
题目描述对于一个元素各不相同且按升序排列的有序序列,请编写一个算法,创建一棵高度最小的二叉查找树。 给定一个有序序列int[] vals,请返回创建的二叉查找树的高度。解答 要创建一棵高度最小的树,就必须让左右子树的结点数量越接近越好。也就是说,我们要让数组中间的值成为根节点,这样数组左边一半成为左子树,右边一半成为右子树。 然后我们以类似的方式构造整棵树。数组每一区段的中间元素成为子树的原创 2016-03-02 11:09:15 · 351 阅读 · 0 评论 -
从上往下打印二叉树
题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。解答队列vector<int> PrintFromTopToBottom(TreeNode *root) { vector<int> ret; if(!root) return ret; deque<TreeNode *> queue; queue.p原创 2016-02-24 20:24:20 · 384 阅读 · 0 评论 -
二叉搜索树的第k个结点
题目描述给定一颗二叉搜索树,请找出其中的第k个结点。 解答如果按照中序遍历的顺序遍历一棵二叉搜索树,遍历顺序的值是递增排序的。所以,只需要用中序遍历算法遍历一棵二叉搜索树,就很容易找到第k个结点。本来在整棵书中寻找第k个结点,遍历过1个结点后,在剩余的结点中就是寻找第k-1个结点。TreeNode* KthNode(TreeNode* pRoot, unsigned int k) {原创 2016-02-24 11:27:02 · 562 阅读 · 0 评论 -
102.Binary Tree Level Order Traversal&把二叉树打印成多行
挖坑待填原创 2014-02-27 11:29:03 · 648 阅读 · 0 评论 -
99.Recover Binary Search Tree
Two elements of a binary search tree (BST) are swapped by mistake.Recover the tree without changing its structure.Note:A solution using O(n) space is pretty straight forward. Could you devis原创 2015-06-29 14:31:23 · 368 阅读 · 0 评论 -
Binary Tree Paths
Given a binary tree, return all root-to-leaf paths.For example, given the following binary tree: 1 / \2 3 \ 5All root-to-leaf paths are:["1->2->5", "1->3"]对树的深度优先原创 2015-12-02 13:37:32 · 348 阅读 · 0 评论 -
二叉树的深度&判断一棵二叉树是否是平衡二叉树&110. Balanced Binary Tree
二叉树的深度题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。如果一棵树为空,那么它的深度为0。如果一棵树只有一个结点,它的深度为1。如果根结点只有做子树而没有右子树,那么树的深度应该是其左子树的深度加1;同样如果根结点只有右子树而没有左子树,那么树的深度就是其右子树的深度加1。如果既有左子树又有右子树,那么树的深度就是其原创 2016-02-18 22:18:06 · 459 阅读 · 0 评论 -
二叉树的下一个结点
题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 解答题目中的二叉树的中序遍历序列是d,b,h,e,i,a,f,c,g。分三种情况如果一个结点有右子树,那么它的下一个结点就是它的右子树的最左子结点。也就是说,从右子结点出发一直沿着指向左子结点的指针,我们就可以找到它的下一个结点。例如图中结点b的下一个结原创 2016-02-19 15:49:37 · 956 阅读 · 0 评论 -
树的子结构
题目描述输入两颗二叉树A,B,判断B是不是A的子结构。解答 要查找树A中是否存在和树B一样的子树,我们可以分成两步: 1. 在树A中找到和B的根节点的值一样的结点R 2. 判断以R为根节点的子树是不是包含和B一样的结构。 以题目中的两棵树为例来分析这一过程。 首先我们在树A中找到值为8(树B的根结点的值)的结点。从树A的根结点开始遍历,我们发现它的根结点的值就是8。接着我们去判原创 2016-03-02 23:04:40 · 286 阅读 · 0 评论 -
235. Lowest Common Ancestor of a Binary Search Tree&236. Lowest Common Ancestor of a Binary Tree
问题描述235.Lowest Common Ancestor of a Binary Search TreeGiven a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST.According to the definition of LCA on Wikiped原创 2016-03-03 09:48:27 · 305 阅读 · 0 评论 -
Invert Binary Tree
Invert a binary tree. 4 / \ 2 7 / \ / \1 3 6 9to 4 / \ 7 2 / \ / \9 6 3 1Solution1,递归/** * Definition for a binary tree node. * struct Tre原创 2015-06-25 21:21:40 · 386 阅读 · 0 评论 -
二叉树的镜像
题目描述操作给定的二叉树,将其变换为源二叉树的镜像。 二叉树的镜像定义 总结上面的过程,可以得出求一棵树的镜像的过程:前序遍历这棵树的每个结点,如果遍历到的结点有子结点,就交换它的两个子结点。当交换完所有非叶子结点之后,就得到了树的镜像。void Mirror(TreeNode *pRoot) { if(!pRoot || (!pRoot->left && !pRoot原创 2016-02-16 16:10:21 · 304 阅读 · 0 评论 -
重建二叉树
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。struct TreeNode* reConstructBinaryTree(vector<int> pre,vector<int> in) {原创 2016-02-19 16:56:52 · 323 阅读 · 0 评论 -
对称的二叉树
题目描述请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 解答通常情况下,我们有三种不同的二叉树遍历算法,即前序遍历、中序遍历和后序遍历。在这三种遍历算法中,都是先遍历左子结点,再遍历右子结点。 我们针对前序遍历定义一种对称的遍历算法,即先遍历父结点,再遍历它的右子结点,最后遍历它的左子结点。如果用前序遍历算法遍历题图中的第一棵二叉树原创 2016-02-22 19:57:33 · 671 阅读 · 0 评论 -
按之字形顺序打印二叉树
题目描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 以题目中的二叉树为例,一步步分析。当二叉树的根结点(结点1)打印之后,它的左子结点(结点2)和右子结点(结点3)先后保存到一个容器中。值得注意的是,在打印第二层的结点时,先打印结点3,后打印结点2。由此可见结点在这个容器中是后进先出的,因此该容原创 2016-02-22 20:56:35 · 3539 阅读 · 2 评论 -
Symmetric Tree
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).For example, this binary tree is symmetric: 1 / \ 2 2 / \ / \3 4 4 3But the f原创 2014-02-26 17:15:24 · 546 阅读 · 0 评论