814. Binary Tree Pruning [JavaScript]

探讨了一种算法,该算法接收一个二叉树,其中节点值为0或1,通过递归方法删除所有不含1值的子树,最终返回优化后的树结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、题目

  We are given the head node root of a binary tree, where additionally every node’s value is either a 0 or a 1.

  Return the same tree where every subtree (of the given tree) not containing a 1 has been removed.

  (Recall that the subtree of a node X is X, plus every node that is a descendant of X.)

二、题目大意

  给定一个二叉树,如果二叉树的子树中不包含1则删除,返回新的子树。

三、解题思路

  采用递归的方法,在递归的过程中,需要判断当前子树是保留还是删除:

  (root.val == 1 || root.left != null || root.right != null) ? root : null
四、代码实现
const pruneTree = root => {
  if (!root) {
    return null
  }
  root.left = pruneTree(root.left)
  root.right = pruneTree(root.right)
  return (root.val == 1 || root.left != null || root.right != null) ? root : null
}

  如果本文对您有帮助,欢迎关注微信公众号,为您推送更多大前端相关的内容, 欢迎留言讨论,ε=ε=ε=┏(゜ロ゜;)┛。

  您还可以在这些地方找到我:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值