算法通关40讲 笔记五(树 图 二叉树遍历)

树,二叉树,二叉搜索树

算法通关40讲 笔记五(树 图 二叉树遍历)_第1张图片
树和链表的联系
链表是next连接

算法通关40讲 笔记五(树 图 二叉树遍历)_第2张图片
实际上,树是一个节点出2个next节点,左节点和右节点。
父亲节点,儿子节点,兄弟节点。
树本身是分层的,比如层次遍历BFS。
算法通关40讲 笔记五(树 图 二叉树遍历)_第3张图片
完全二叉树
算法通关40讲 笔记五(树 图 二叉树遍历)_第4张图片
图:最短路径,最短时间,费用最低等等。
算法通关40讲 笔记五(树 图 二叉树遍历)_第5张图片
算法通关40讲 笔记五(树 图 二叉树遍历)_第6张图片
算法通关40讲 笔记五(树 图 二叉树遍历)_第7张图片
二叉搜索树
算法通关40讲 笔记五(树 图 二叉树遍历)_第8张图片
算法通关40讲 笔记五(树 图 二叉树遍历)_第9张图片
算法通关40讲 笔记五(树 图 二叉树遍历)_第10张图片

最坏情况O(n),就是没有左子树,只有右子树,就变成了一条长长的链了。每次都去右边找。就和链表一样了。

实战
98. 验证二叉搜索树
https://leetcode-cn.com/problems/validate-binary-search-tree/
注意:必须满足左子树全部元素都小于根节点,右子树全部元素都大于根节点。
算法通关40讲 笔记五(树 图 二叉树遍历)_第11张图片
算法通关40讲 笔记五(树 图 二叉树遍历)_第12张图片
算法通关40讲 笔记五(树 图 二叉树遍历)_第13张图片
算法通关40讲 笔记五(树 图 二叉树遍历)_第14张图片

实战
235. 二叉搜索树的最近公共祖先
https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-search-tree/
算法通关40讲 笔记五(树 图 二叉树遍历)_第15张图片
算法通关40讲 笔记五(树 图 二叉树遍历)_第16张图片

  1. 二叉树的最近公共祖先
    https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree/

算法通关40讲 笔记五(树 图 二叉树遍历)_第17张图片
算法通关40讲 笔记五(树 图 二叉树遍历)_第18张图片
二叉树的遍历
前序: pre-order
中序: in-order
后序: post-order
算法通关40讲 笔记五(树 图 二叉树遍历)_第19张图片
前序:根左右:ABDECFG

算法通关40讲 笔记五(树 图 二叉树遍历)_第20张图片
中序:左根右:DBEAFCG
算法通关40讲 笔记五(树 图 二叉树遍历)_第21张图片
后序:左右根:DEBFGCA
算法通关40讲 笔记五(树 图 二叉树遍历)_第22张图片
如果是二叉搜索树的中序遍历,会出来一个有序数组。
算法通关40讲 笔记五(树 图 二叉树遍历)_第23张图片

你可能感兴趣的:(Leetcode,算法,数据结构,链表)