LeetCode第1261题 - 在受污染的二叉树中查找元素

题目

解答

java 复制代码
class FindElements {
  Set<Integer> set = new HashSet<>();

  public FindElements(TreeNode root) {
    if (root == null) {
      return;
    }

    LinkedList<TreeNode> queue = new LinkedList<>();
    queue.add(root);
    root.val = 0;
    while (!queue.isEmpty()) {
      TreeNode node = queue.removeFirst();
      set.add(node.val);
      int value = node.val * 2;

      if (node.left != null) {
        node.left.val = value + 1;
        queue.add(node.left);
      }

      if (node.right != null) {
        node.right.val = value + 2;
        queue.add(node.right);
      }
    }

  }

  public boolean find(int target) {
    return set.contains(target);
  }
}

总结

使用广度优先算法遍历树,同时将节点的值保存起来,以待后续的查询操作。

相关推荐
Omics Pro20 分钟前
首个!外源天然产物综合性代谢图谱
数据库·人工智能·算法·机器学习·r语言
JAVA社区20 分钟前
Java高级全套教程(十)—— SpringCloudAlibaba超详细实战详解
java·开发语言·spring cloud·面试·职场和发展
voidmort28 分钟前
3. 微调(Fine-tuning)与强化学习(RL)的核心思想
python·深度学习·算法
人道领域1 小时前
【LeetCode刷题日记】669.修剪二叉搜索树
开发语言·python·算法
QiLinkOS2 小时前
【从实验室到商业战场:发明专利如何重塑科技与企业的共生生态】
大数据·c语言·数据结构·c++·人工智能·单片机·算法
小白兔奶糖ovo3 小时前
【Leetcode】231. 2的幂
linux·算法·leetcode
xiaoxiaoxiaolll3 小时前
《Light: Science & Applications》合并BIC实现80倍阈值单模运行:超紧凑光子晶体激光器新突破
人工智能·算法·机器学习
Peter·Pan爱编程3 小时前
14. Lambda 表达式:随手可写的函数对象
c++·算法·ai编程
-To be number.wan3 小时前
算法日记 | 暴力枚举
学习·算法
s_w.h3 小时前
【 linux 】动静态库的制作
linux·运维·服务器·算法·bash