Outline
1.Binary Tree DFS Traversal
- preorder / inorder / postorder
- Divide & Conquer
- DFS Template
2.Binary Tree BFS Traversal
- BFS template
3. Binary Search Tree
- validate, insert, delete
note:二叉树问题,首选分治(天然分治场景,解决80%问题);
1.1 DFS模板
模板一:
递归;
public class Solution {
public void traverse(TreeNode root) {
if (root == null) {
return;
}
// do something with root
traverse(root.left);
// do something with root
traverse(root.right);
// do something with root
}
}
模板二:
分治思想;
Tempate 2: Divide & Conquer
public class Solution {
public ResultType traversal(TreeNode root) {
// null or leaf
if (root == null) {
// do something and return;
}
// Divide
ResultType left = traversal(root.left);
ResultType right = traversal(root.right);
// Conquer
ResultType result = Merge from left and right.
return result;
}
}
练习题:
T-1 二叉树前序遍历
https://leetcode-cn.com/pr