https://s3-us-west-2.amazonaws.com/secure.notion-static.com/c697d8cf-577a-48e8-b224-c244ce190dff/image.png

求深度要从上到下去查,所以需要前序遍历(中左右)

求高度要从下到上去查,所以需要后序遍历(左右中)

有的同学一定疑惑,为什么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