366. 寻找二叉树的叶子节点

1. 题目

依次从左到右,每次收集并删除所有的叶子节点

2. 解题

1、先后序遍历把树倒过来,再遍历一次从最外层

2、后序遍历找到每一个节点所在的层级

3. 代码

    int dfs(TreeNode* root)
    {
        if(!root) return -1;
        int hl = dfs(root->left);
        int hr = dfs(root->right);
        int hcur = max(hl, hr) + 1;
        if(ans.size() <= hcur)
            ans.push_back({});
        ans[hcur].push_back(root->val);
        return hcur;
    }

 

posted @ 2021-03-17 21:46  赫拉克利特  阅读(192)  评论(0编辑  收藏  举报