求深度要从上到下去查,所以需要前序遍历(中左右)
求高度要从下到上去查,所以需要后序遍历(左右中)
有的同学一定疑惑,为什么104.二叉树的最大深度中求的是二叉树的最大深度,也能用后序遍历。
那是因为树的最大深度就是根节点的高度,所以才可以使用后序遍历。
Python:
class TreeNode:
def __init__(self, value):
self.value = value
self.left = None
self.right = None
C++:
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
遍历方式:BFS, DFS