LeetCode主题整理(2)树问题和相关问题
来源:互联网 发布:王夫之的知行 编辑:程序博客网 时间:2024/05/23 10:18
Topic 1: 关于遍历
和树相关的第一个重要主题,是遍历。前序遍历(根,左子树,右子树),中序遍历(左子树,根,右子树),后序遍历(左子树,右子树,根),层序遍历(第一层也就是根节点所在的那层,第二层.....最后一层也就是叶节点所在的那层)是常见问题。
前序,中序,后序,使用递归都非常好些,比较困难的解法是,如何用非递归的方式来遍历。按照代码的难度升序,是前序,中序,后序。都要使用到栈这个小数据结构。相关题目如下:
Binary Tree Inorder Traversal 中序遍历
Binary Tree Preorder Traversal 前序遍历
Binary Tree Postorder Traversal 后序遍历
层序遍历和层序遍历的变种在下面的题目中,都要使用队列这个小数据结构,相关题目如下:
Binary Tree Level Order Traversal 从上向下层序遍历
Binary Tree Level Order Traversal II 从下向上层序遍历
Binary Tree Zigzag Level Order Traversal 从上向下之字形层序遍历
Flatten Binary Tree to Linked List 把二叉树转变为链表,借助前序遍历进行转换
Topic 2: 关于递归
和数相关的另外一个重要主题,是递归。其实在上面的遍历中,已经可以用递归解决不少问题了。但是接下来还有更多可以使用递归解决的问题。树本身的自相似的造型,决定了和树相关的题目是非常适合用递归的。相关题目如下:
Construct Binary Tree from Preorder and Inorder Traversal 已知前序遍历和中序遍历,建树
Construct Binary Tree from Inorder and Postorder Traversal 已知后序遍历和中序遍历,建树
Balanced Binary Tree 判断一个二叉树是否是平衡的
Symmetric Tree 判断一个二叉树是否是轴对称的,题意比较好理解,实际我觉得很容易写错的
Minimum Depth of Binary Tree 求从root到叶节点的最小深度
Validate Binary Search Tree 判断一棵树是否是二叉搜索树
Recover Binary Search Tree 修正一棵树二叉搜索树中的两个发生对调的节点,使得新树成为合格的二叉搜索树
Convert Sorted Array to Binary Search Tree 从排序数组构建二叉搜索树
Convert Sorted List to Binary Search Tree 从排序链表构建二叉搜索树
Sum Root to Leaf 通过递归计算从root到leaf的所有路径构成的数的和。
Binary Tree Maximum Path Sum 未搞定待写
Topic 3: 关于卡特兰数
这个是比较数学的问题了。看到有几道和括号相关的题目和树相关的题目,本质都是卡特兰数问题。 卡特兰数还有很多应用,wiki一下很容易发现,我理解得不太深刻,先不写了,以后想清楚了再写其它应用场合。leetcode中和卡特兰数相关的树问题如下:
Unique Binary Search Trees (1~n)可以构成多少个不同的二叉搜索树?
Unique Binary Search Trees II 把上面这些树构造出来。
- LeetCode主题整理(2)树问题和相关问题
- LeetCode主题整理(4)链表及相关问题
- LeetCode主题整理(4)链表及相关问题
- LeetCode主题整理(1)滤重问题
- UITableView 相关问题整理
- MFC相关问题整理
- MTK_SDK 相关问题整理
- java相关问题整理
- VisualGDB相关问题整理
- 编码相关问题整理
- 集合相关问题整理
- Spring相关问题整理
- opencv相关问题整理(2)
- LeetCode Palindrome 相关问题
- leetcode MajorityElement相关问题
- testNG相关问题的整理
- C++相关问题整理汇总
- java多线程相关问题整理
- Java连接Mysql次日总要重启tomcat
- 4Sum 四数之和
- linux内核中有一个通用的双向循环list链表
- jQuery 常用技术点--入门,异步交互
- ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务的解决方法
- LeetCode主题整理(2)树问题和相关问题
- Remove Element 删除元素
- 剑指XX游戏(九) - C/C++必知必会
- 低成本开始互联网创业:探讨域名、服务器、CDN、邮箱等节流之道
- 连通分支
- LA 3027 Corporative Network / 并查集
- 用OpenSSL编写SSL,TLS程序 - Win32版
- smbmount命令
- CentOS 6.4 安装 Emacs 24.3