Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

学习笔记 树、二叉树、二叉搜索树

树的基本定义: 有根节点,有左子树和右子树,有左右子节点

常见操作: 查询(O(logn)) 插入新结点(创建)(O(logn)) 删除

树和图的差别: 有没有形成环,子节点与兄弟节点或父节点出现连接,指针指向后者的话,此时的树按照定义就变成图。

树的面试题一般用递归求解原因: 1.节点的定义就是用递归 2.重复性(自相似性)

树节点的定义代码必须熟记!!

二叉搜索树: 者的话,此时的树按照定义就变成图。

二叉搜索树特点:

  1. 左子树上所有结点的值均小于根结点的值
  2. 右子树上所有结点的值均大于根结点的值 以此类推,左右子树均为二叉搜索树(重复性)

递归

递归写法: 1.recursion terminator(递归终结) 先写好递归的终止条件,防止死循环或死递归 2.process logic in current level(处理当前层的递归逻辑) 3.drill down(挖到下一层) 4.reverse the current level status if needed(清理当前层)

思维要点: 1.不要进行人肉递归 2.找到最近最简洁的方法,将其拆成可重复解决的子问题 3.数学归纳法思维