美文网首页算法
1110. 删点成林

1110. 删点成林

作者: 红树_ | 来源:发表于2023-05-29 15:26 被阅读0次

LC每日一题,参考1110. 删点成林

题目

给出二叉树的根节点 root,树上每个节点都有一个不同的值。
如果节点值在 to_delete 中出现,我们就把该节点从树上删去,最后得到一个森林(一些不相交的树构成的集合)。

返回森林中的每棵树。你可以按任意顺序组织答案。


输入:root = [1,2,3,4,5,6,7], to_delete = [3,5]
输出:[[1,2,null,4],[6],[7]]
输入:root = [1,2,4,null,3], to_delete = [3]
输出:[[1,2,4]]

解题思路

  • 深度优先搜索:因为要删除节点,优先考虑使用dfs

深度优先搜索

class Solution {
    List<TreeNode> ans;
    boolean[] hash = new boolean[1001];
    public List<TreeNode> delNodes(TreeNode root, int[] to_delete) {
        //树用根节点表示 删除节点后有子节点则成为新树
        ans = new ArrayList<>();
        //先用哈希表存储待删除节点值
        for(int i : to_delete) hash[i] = true;
        //由于要删除节点 考虑使用dfs
        dfs(null,root,null);
        return ans;
    }
    void dfs(TreeNode node,TreeNode left,TreeNode right) {
        if(left != null) {
            if(hash[left.val]) {
                if(node != null) node.left = null;
                dfs(null,left.left,left.right);
            }
            else {
                if(node == null)ans.add(left);
                dfs(left,left.left,left.right);
            }
        }
        if(right != null) {
            if(hash[right.val]) {
                if(node != null) node.right = null;
                dfs(null,right.left,right.right);
            }
            else {
                if(node == null) ans.add(right);
                dfs(right,right.left,right.right);
            }
        }
    }
}

复杂度分析

  • 时间复杂度:O(n)n为树的节点数,总共会访问每个节点一次。
  • 空间复杂度:O(m),哈希表使用空间,m为要删除的节点数。

相关文章

  • LeetCode #1110 Delete Nodes And

    1110 Delete Nodes And Return Forest 删点成林 Description:Give...

  • 每日算法题—删点成林

    题目描述 给出二叉树的根节点 root,树上每个节点都有一个不同的值。 如果节点值在 to_delete 中出现,...

  • [二叉树] 删点成林

    前言 之前一直做得题目是在一棵树上捯饬,今天做一道把二叉树变为森林的题目,多点捯饬的空间。 题目 删点成林[htt...

  • 「①万封情书💌」之背影

    开头了好久,写了又删删了又写,删删写写,终要留下的点什么~ 那就这样开始吧,这次火车东站亲亲林送梅子,转身的时候离...

  • 删点啥

    今天看着手机相册里一片绿色,都是之前一段时间的各种码的截屏图! 顺手给删了,平时懒,不想动手,点点都嫌麻烦,今天竟...

  • 负气走江南(五)

    “你咋一点不急?孩子烧成这样,赶快一起去医院!”救护人员催促着李成林道。“我这就去!”李成林说。话毕,李成林便...

  • 成林

    哦,太棒了,今天早上我们去了成林玩了一整天,真是特别的爽啊。 开始我们先整对,乘大巴车,那个大巴车...

  • 成林

    和声清远吟念新 桑麻思境柳传神 入世还需鸿儒志 古风妙笔渐成林

  • 【绝句】咏物诗一组

    盆景树 葱茏只在石头间,春色纷纭信手删。 沈水何曾归大海,成林未必在高山。 凤 梨 叶座青莲戴凤巾,浑圆恰好饰龙鳞...

  • 1110.今日份心情

    嘿嘿,终于到休息的时候了,好开心,好好睡,好好吃,满足!

网友评论

    本文标题:1110. 删点成林

    本文链接:https://www.haomeiwen.com/subject/dtwjedtx.html