diff --git a/algorithm/6、二叉树.md b/algorithm/6、二叉树.md new file mode 100644 index 0000000..5f724bb --- /dev/null +++ b/algorithm/6、二叉树.md @@ -0,0 +1,38 @@ +#### 合并K个升序链表 LeetCode2 + +使用PriorityQueue保存各链表的头结点,每次prorityQueue.poll()弹出最小值,注意单链表的next指针和中间变量。循环终止条件为优先级队列变空。 + +二叉树 +先序遍历 头左右 +中序遍历 左头右 +后序遍历 左右头 + +递归序 每个节点都到达三次 + +主要解题思路是递归 + +#### 判断两颗二叉树是否相同 LeetCode100 + +#### 判断一个二叉树是否对称 LeetCode101 + +#### 获取一个二叉树的高度 LeetCode104 + +#### 用先序数组和中序数组重建一个二叉树 LeetCode105 + +先序遍历的第一个元素是头结点,先序遍历剩余部分左边是左节点的先序,右边是右节点的先序,中序遍历左边是左节点的中序,右边是右节点的中序。递归构建二叉树,递归函数入参为先序遍历的起止index,中序遍历的起止index,返回头结点。 + +### 二叉树按层遍历收集节点 LeetCode107 LeetCode102 + +使用LinkedList(有序,快速插入),递归将每一层的节点入队、出队。 + +### 平衡二叉树 LeetCode110 + +左子树的高度和右子树的高度相差不超过1,则称为平衡二叉树。 + +### 二叉搜索树 LeetCode98 + +递归解决 + +### 路径总和 LeetCode112 + +### 达标路径总和 LeetCode113