
二叉树
「已注销」
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Leetcode 145. Binary Tree Postorder Traversal
Leetcode 145. Binary Tree Postorder Traversal问题描述二叉树的遍历后根序遍历,也就是左右根的顺序访问。分别提供以下方法以及python代码:递归的方式class Solution: def postorderTraversal(self, root): """ :type root: TreeNode...原创 2019-01-06 19:52:19 · 269 阅读 · 0 评论 -
LeetCode 208. Implement Trie (Prefix Tree)
题目描述:实现Trie树的查找、查找前缀、插入等操作。题目链接:LeetCode 208. Implement Trie (Prefix Tree)代码如下:class Trie: def __init__(self): """ Initialize your data structure here. """ s...原创 2019-01-22 16:27:40 · 394 阅读 · 0 评论 -
Leetcode 257. Binary Tree Paths
题目描述:返回二叉树从根到叶子节点的路径。(是无左子树且无右子树)题目链接:Leetcode 257. Binary Tree Paths递归添加。代码如下class Solution: def binaryTreePaths(self, root): """ :type root: TreeNode :rtype: List[...原创 2019-01-26 15:11:36 · 243 阅读 · 0 评论 -
Leetcode 199. Binary Tree Right Side View
题目描述:输出二叉树的右视图。题目链接:Leetcode 199. Binary Tree Right Side View思路:一般二叉树的题目就是层序遍历、先根序遍历、中根序遍历、后根序遍历的一个变体,所以这个题目如果单纯只要右边的话遇到[1,2,3,4]这种情况左子树就无法出来,所以比较好的思路就是层序遍历,找到每层最右的结果。如果层序遍历,需要分层保存结果的话,就要加一个内层循环...原创 2019-01-21 17:53:36 · 112 阅读 · 0 评论 -
Leetcode 235. Lowest Common Ancestor of a Binary Search Tree
题目描述:给出节点p和q,这两个节点一定在二叉搜索树里面,找出p和q的最低公共父节点。题目链接:Leetcode 235. Lowest Common Ancestor of a Binary Search Tree这个是二叉搜索树BST 首先想到就是中序遍历,但是中序遍历要记录父节点,上一个父节点以及匹配p和q,思绪有点复杂,转而思考其最大的特征,就是左子树节点的值小于根节点、右子树大...原创 2019-01-25 22:13:32 · 248 阅读 · 0 评论 -
Leetcode 230. Kth Smallest Element in a BST
题目描述:找出二叉搜索树的第k小的值。题目链接:Leetcode 230. Kth Smallest Element in a BST思路:二叉搜索树是严格的左子树小于根、根小于右子树,中序遍历结果为从小到大的有序列表。故用中序遍历结果,当ans有k个的时候,返回最后一个值。当然也可以用递归的方式来做。代码如下class Solution: def kthSmallest...原创 2019-01-25 15:35:24 · 284 阅读 · 0 评论 -
Leetcode 104. Maximum Depth of Binary Tree
Leetcode 104. Maximum Depth of Binary Tree题目描述:找出二叉树的最大深度。题目链接:Leetcode 104. Maximum Depth of Binary Tree思路:递归的做法就是不断返回二叉树的左子树右子树深度比较大的那一个。迭代的做法就是,用hashmap记录每个节点的深度,然后不断遍历的过程中更新ans,最后加上根节点的深度。...原创 2019-01-25 13:55:10 · 163 阅读 · 0 评论 -
Leetcode 543. Diameter of Binary Tree
题目描述:找出二叉树的最长直径(也就是所以节点连成最长的路径长度)题目链接:Leetcode 543. Diameter of Binary Tree题目思路:用到的就是经典的递归返回值的形式,不断返回左子树和右子树的深度,然后过程中更新最长的路径。代码如下class Solution: def diameterOfBinaryTree(self, root): ...原创 2019-01-25 13:07:27 · 168 阅读 · 0 评论 -
Leetcode 226. Invert Binary Tree
题目描述:倒置二叉树、左子树与右子树交换。题目链接:Leetcode 226. Invert Binary Tree题目思路:利用二叉树的层序遍历,不断交换左右子树,直到最后一层节点。代码如下class Solution: def invertTree(self, root): """ :type root: TreeNode ...原创 2019-01-25 12:46:28 · 200 阅读 · 0 评论 -
Leetcode 173. Binary Search Tree Iterator
问题描述:实现平衡二叉树的迭代器即next()和hasNext()方法的实现。题目链接:173. Binary Search Tree Iterator参考题目94中序遍历的方式,先解决左子树,然后再根,再又子树。这题有点像是迭代器模式,在python里面的话实现__next__魔术方法和一个__iter__魔术方法就可以用in来遍历迭代,在Java里面也是如此,成为可迭代对象,我...原创 2019-01-13 20:51:38 · 157 阅读 · 0 评论 -
Leetcode 144. Binary Tree Preorder Traversal
Leetcode 144. Binary Tree Preorder Traversal问题描述:给出二叉树,写出其前序遍历结果,也就是根左右的顺序访问。题目链接:144. Binary Tree Preorder Traversal提供一下python版本的方法:递归的版本class Solution: def postorderTraversal(self, root):...原创 2019-01-06 20:02:22 · 104 阅读 · 0 评论 -
Leetcode 94. Binary Tree Inorder Traversal
Leetcode 94. Binary Tree Inorder Traversal问题描述:给出二叉树,写出其中序遍历结果,也就是左根右的顺序访问。题目链接:Leetcode 94. Binary Tree Inorder TraversaL提供一下python版本的方法:递归的版本class Solution: def postorderTraversal(self, r...原创 2019-01-06 19:59:46 · 144 阅读 · 0 评论 -
Leetcode 211. Add and Search Word - Data structure design
题目描述:实现一个trie树使其支持正则.搜索。Leetcode 211. Add and Search Word - Data structure design思路,其实就是trie树考虑.字符的时候进行搜索,利用深度优先,找到符合的情况,当遇到.的时候遍历其所有子节点(除is_word)除外。然后如果找到就返回True 如果找不到就是不做任何修改,在循环最后返回False.可以设立一...原创 2019-01-23 13:54:00 · 179 阅读 · 0 评论