树,二叉树,二叉搜索树
图
树和链表的联系
链表是next连接
实际上,树是一个节点出2个next节点,左节点和右节点。
父亲节点,儿子节点,兄弟节点。
树本身是分层的,比如层次遍历BFS。
完全二叉树
图:最短路径,最短时间,费用最低等等。
二叉搜索树
最坏情况O(n),就是没有左子树,只有右子树,就变成了一条长长的链了。每次都去右边找。就和链表一样了。
实战
98. 验证二叉搜索树
https://leetcode-cn.com/problems/validate-binary-search-tree/
注意:必须满足左子树全部元素都小于根节点,右子树全部元素都大于根节点。
实战
235. 二叉搜索树的最近公共祖先
https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-search-tree/
- 二叉树的最近公共祖先
https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree/
二叉树的遍历
前序: pre-order
中序: in-order
后序: post-order
前序:根左右:ABDECFG
中序:左根右:DBEAFCG
后序:左右根:DEBFGCA
如果是二叉搜索树的中序遍历,会出来一个有序数组。