二叉树
益达915
一名在读大学生,渣渣一枚,进取中...
展开
-
LeetCode | Binary Tree Preorder Traversal
先序遍历 Given a binary tree, return the preorder traversal of its nodes’ values. For example: Given binary tree {1,#,2,3}, 1 \ 2 3 return [1,2,3]. Note: Recursive sol原创 2016-08-05 17:24:44 · 259 阅读 · 0 评论 -
LeetCode | Unique Binary Search Trees
参考博文:http://fisherlei.blogspot.sg/2013/03/leetcode-unique-binary-search-trees.html题目Given n, how many structurally unique BST’s (binary search trees) that store values 1…n?For example, Given n = 3, th原创 2016-08-07 20:49:01 · 367 阅读 · 1 评论 -
LeetCode | Unique Binary Search Trees II
Given an integer n, generate all structurally unique BST’s (binary search trees) that store values 1…n.For example, Given n = 3, your program should return all 5 unique BST’s shown below.1 3原创 2016-08-07 20:56:09 · 363 阅读 · 7 评论 -
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.首先需要明确一点,如何选择根节点使得左右平衡?必须要求选择中间的数,这样使得整个数组被划分成为两部分,并且左右大小差距不超过1于是我们可以利用二分的思想,传入start和end代表需要访问到的数组里面的 节点原创 2016-08-08 09:04:20 · 264 阅读 · 0 评论 -
LeetCode | Minimum Depth of Binary Tree
Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.需要注意的一点是当左孩子不为空而右孩子为空的时候,说明此时右边孩子返回的0并不是叶子节原创 2016-08-08 10:22:02 · 268 阅读 · 0 评论 -
LeetCode | Convert Sorted List to Binary Search Tree
Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.将链表转换为平衡二叉搜索树。 平衡的要点是取到中点的数据,搜索树的要点是左小右大(排好序的链表已经帮我们实现了这一点)相比较数组,链表需要寻找开始和末尾节点。 并且在划分区间的时候原创 2016-08-08 09:38:08 · 287 阅读 · 0 评论 -
LeetCode | Maximum Depth of Binary Tree
Given a binary tree, find its maximum depth.The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.没什么好说的,最远距离也就是树的深度,30s写完一次AC,注意对这些基础的算法要掌握的原创 2016-08-08 10:25:10 · 221 阅读 · 0 评论 -
LeetCode | 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 = 2原创 2016-08-08 15:57:25 · 232 阅读 · 0 评论 -
LeetCode | Path Sum II
Given a binary tree and a sum, find all root-to-leaf paths where each path’s sum equals the given sum.For example: Given the below binary tree and sum = 22, 5 / \原创 2016-08-08 16:57:10 · 278 阅读 · 0 评论 -
LeetCode | Binary Tree Maximun Path Sum
Given a binary tree, find the maximum path sum.For this problem, a path is defined as any sequence of nodes from some starting node to any node in the tree along the parent-child connections. The path原创 2016-08-08 20:10:05 · 228 阅读 · 0 评论 -
LeetCode | Sum Root to Leaf Numbers
Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number.An example is the root-to-leaf path 1->2->3 which represents the number 123.Find the total sum of al原创 2016-08-08 20:17:34 · 228 阅读 · 0 评论 -
LeetCode | Binary Search Tree Iterator
Implement an iterator over a binary search tree (BST). Your iterator will be initialized with the root node of a BST.Calling next() will return the next smallest number in the BST.Note: next()原创 2016-09-01 15:29:00 · 332 阅读 · 0 评论 -
王道数据结构课后题 | P121
7、判断一个二叉树是否为完全 二叉树。一开始是想着利用递归,判断有左孩子而无右孩子的节点的个数,并且要求左孩子为叶子节点。 判断的条件很复杂,最后发现这种方法实际上是有问题的。 如果同时碰到两个节点同时为有左叶子节点而右子树为空,这种情况按照判断应当返回false 但是这种方法并不能正确返回 1 / \ 2 3 / / 4 5原创 2016-08-11 17:22:15 · 1783 阅读 · 0 评论 -
LeetCode | Construct Binary Tree from Inorder and Postorder Traversal
Given inorder and postorder traversal of a tree, construct the binary tree.Note: You may assume that duplicates do not exist in the tree.和前一题很类似,由前序换成后序 只需要每次从尾部取出一个元素放到中序遍历里面去比对就好了 done~ 下标确定的很蛋疼,原创 2016-08-07 17:38:20 · 287 阅读 · 5 评论 -
LeetCode | Construct Binary Tree from Preorder and Inorder Traversal
Given preorder and inorder traversal of a tree, construct the binary tree.Note: You may assume that duplicates do not exist in the tree.由前序遍历和中序遍历构建二叉树。 流程:从preorder选取一个数据从inorder找到这个数据的下标,并以此为界限将其原创 2016-08-07 17:12:56 · 194 阅读 · 0 评论 -
LeetCode | Binary Tree Inorder Traversal
Given a binary tree, return the inorder traversal of its nodes’ values. For example: Given binary tree [1,null,2,3], 1 \ 2 / 3 return [1,3,2].Note: Rec原创 2016-08-05 19:02:25 · 199 阅读 · 0 评论 -
LeetCode | Binary Tree Postorder Traversal
后序遍历,当然,,,用栈实现后序遍历的关键在于从左孩子回到根节点和从右孩子回到跟节点。 如果是从左回的,要继续向右。如果是从右边回来的(表明左右孩子已经遍历结束)这时候就需要将自身输出。具体到代码上,就是使用一个q指针,用于保存上一个走过的节点(确切的说应该是输出的节点)。 然后从栈顶取出元素的时候,判断p->right==q? 来决定它是从哪个方向回来的~ 完成使命~~注释里面也说的比较清楚原创 2016-08-05 19:54:42 · 237 阅读 · 0 评论 -
LeetCode | Binary Tree Level Order Traversal I,II
Given a binary tree, return the level order traversal of its nodes’ values. (ie, from left to right, level by level). For example: Given binary tree [3,9,20,null,null,15,7], 3 /原创 2016-08-05 20:45:59 · 232 阅读 · 0 评论 -
LeetCode | Binary Tree Zigzag Level Order Traversal
二叉树Z型输出Given a binary tree, return the zigzag level order traversal of its nodes’ values. (ie, from left to right, then right to left for the next level and alternate between).For example: Given binar原创 2016-08-06 12:04:22 · 218 阅读 · 0 评论 -
LeetCode | Recover Binary Search Tree
参考文章:http://www.cnblogs.com/TenosDoIt/p/3445682.htmlTwo 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原创 2016-08-06 15:51:32 · 250 阅读 · 0 评论 -
LeetCode | Same Tree
判断两棵树是否相同~在下写的是递归版本~~class Solution {public: bool isSameTree(TreeNode* p, TreeNode* q) { if((p && !q )|| (!p && q)) return false; //只有一个为空,必然是false //其实上面一句可以改成 if(!p || !q)原创 2016-08-06 16:05:15 · 183 阅读 · 0 评论 -
LeetCode | Symmetric Tree
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).For example, this binary tree [1,2,2,3,4,4,3] is symmetric:1/ \ 2 2 / \ / \ 3 4 4 3 But the fol原创 2016-08-06 17:27:05 · 215 阅读 · 0 评论 -
LeetCode | Invert Binary Tree
调转二叉树的左右孩子Invert a binary tree. 4/ \ 2 7 / \ / \ 1 3 6 9 to 4 / \ 7 2 / \ / \ 9 6 3 1如果用递归的思路将会非常之简单和简洁 每次遇到非空节点的时候,使用temp指针交换左右节点。然后递归调用函数,将左右孩子的子树进行调换原创 2016-08-06 17:29:58 · 202 阅读 · 0 评论 -
LeetCode | Lowest Common Ancestor of a Binary Search Tree
Given 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 Wikipedia: “The lowest common ancestor is defined between two原创 2016-08-06 19:37:20 · 261 阅读 · 0 评论 -
LeetCode | Balanced Binary Tree
Given 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 differ by原创 2016-08-06 21:26:49 · 220 阅读 · 0 评论 -
LeetCode | Flatten Binary Tree to Linked List
Given a binary tree, flatten it to a linked list in-place.For example, Given 1 / \ 2 5 / \ \ 3 4 6The flattened tree should look like: 1 \ 2 \ 3原创 2016-08-06 21:50:53 · 213 阅读 · 0 评论 -
LeetCode | Populating Next Right Pointers in Each Node
Given a binary treestruct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *next;}Populate each next pointer to point to its next right node. If there is no next right node,原创 2016-08-07 10:00:59 · 170 阅读 · 0 评论 -
LeetCode | Validate Binary Search Tree
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. The right原创 2016-08-07 22:59:14 · 370 阅读 · 7 评论