Binary Tree

Binary Tree 主要考点是一手搜索,谈到搜索,常见算法有两种

(1) 二叉树上的DFS:

主流的方法有三种,包括

Traversal方法
Divide-and-Conquer方法
非递归方法

(2) 二叉树上的BFS:

目前为止见到最多的是level order traversal。这里值得一提的是,常规的BFS一般用queue和hash的结合,但是因为二叉树独特的树形结构,可以省略hash,直接用一个queue解决BFS。这个特性还是比较有意思的。

最后,希望注意定义TreeNode类的方法,考官不会帮你定义类,这个具体定义并不难,但是需要写熟悉

struct TreeNode {
  int val;
  TreeNode* left;
  TreeNode* right;
  TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};

(3) 二叉搜索树的增删查改BST 增: Insert Node in a Binary Search Tree 需要记住,一定是insert在leaf结点这个特性

删:Remove Node in Binary Search Tree 非常难做,分类讨论的说

查:Search Range in Binary Search Tree 只是沿着一条path走到底

改: 题目还没见到

Inorder Successor: 见题目:Inorder Successor of BST

results matching ""

    No results matching ""