大概写了能有10题左右关于树的题目了,感觉写出一点感觉了,所以就来总结一下。
94、二叉树的中序遍历
94、二叉树的前序遍历
94、二叉树的后序遍历
100、相同的树
101、对称二叉树
104、二叉树的最大深度
108、将有序数组转化成二叉搜索树
110、平衡二叉树
111、二叉树的最小深度
112、路径总和
解决二叉树类题最简单的方法就是DFS,因为二叉树本来就是一个具有递归性质的数据结构,所以用递归解决更直观和高效。
二叉树类题有一个固定的DFS框架:
void DFS(TrerNode* root){
if (!root) return;
if(判断条件){
//需要进行的操作
}
DFS(root->left);
DFS(root->right);
}
核心思想就是:明确其中一个节点需要做的事,剩下的交给递归。
当然框架仅仅只是一个框架,一般来说题目会有一些需要额外添加的操作或者条件,这时候就要根据二叉树的性质去进行添加。