当前位置: 首页 > news >正文

唐山中企动力做网站用php做电子商务网站

唐山中企动力做网站,用php做电子商务网站,网页升级访问自动,一个做搞笑类视频的网站取名本篇博客给大家带来的是二叉树深度优先搜索的解法技巧,在后面的文章中题目会涉及到回溯和剪枝,遇到了一并讲清楚. 🐎文章专栏: DFS 🚀若有问题 评论区见 ❤ 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的…

在这里插入图片描述

本篇博客给大家带来的是二叉树深度优先搜索的解法技巧,在后面的文章中题目会涉及到回溯和剪枝,遇到了一并讲清楚.
🐎文章专栏: DFS
🚀若有问题 评论区见
欢迎大家点赞 评论 收藏 分享
如果你不知道分享给谁,那就分享给薯条.
你们的支持是我不断创作的动力 .

王子,公主请阅🚀

  • 要开心
    • 要快乐
      • 顺便进步
  • 1. 计算二叉树中的布尔值
  • 2. 求根节点到叶节点数字之和

要开心

要快乐

顺便进步

1. 计算二叉树中的布尔值

题目链接: 2331. 计算布尔二叉树的值

题目内容:

给你一棵 完整二叉树 的根,这棵树有以下特征:

叶子节点 要么值为 0 要么值为 1 ,其中 0 表示 False ,1 表示 True 。
非叶子节点 要么值为 2 要么值为 3 ,其中 2 表示逻辑或 OR ,3 表示逻辑与 AND 。
计算 一个节点的值方式如下:

如果节点是个叶子节点,那么节点的 值 为它本身,即 True 或者 False 。
否则,计算 两个孩子的节点值,然后将该节点的运算符对两个孩子值进行 运算 。
返回根节点 root 的布尔运算值。

完整二叉树 是每个节点有 0 个或者 2 个孩子的二叉树。

叶子节点 是没有孩子的节点。

在这里插入图片描述
输入:root = [2,1,3,null,null,0,1]
输出:true
解释:上图展示了计算过程。
AND 与运算节点的值为 False AND True = False 。
OR 运算节点的值为 True OR False = True 。
根节点的值为 True ,所以我们返回 true 。
示例 2:

输入:root = [0]
输出:false
解释:根节点是叶子节点,且值为 false,所以我们返回 false 。

提示:

树中节点数目在 [1, 1000] 之间。
0 <= Node.val <= 3
每个节点的孩子数为 0 或 2 。
叶子节点的值为 0 或 1 。
非叶子节点的值为 2 或 3 。

一. 分析

要想知道根节点的布尔值,就得先求左子树和右子树的布尔值.
在这里插入图片描述




二. 写递归代码的具体步骤

1. 大量重复子问题(函数头)
boolean dfs(TreeNode root)

2. 只关注某一个子问题
想知道根节点的布尔值,就得先求左子树和右子树的布尔值
在这里插入图片描述

3. 递归出口
根据题意,
节点值为0,返回false
节点值为1,返回true.

三. 代码实现

class Solution {public boolean evaluateTree(TreeNode root) {return dfs(root);}public boolean dfs(TreeNode root) {if(root.val == 0) {return false;}if(root.val == 1) {return true;}boolean left = dfs(root.left);boolean right = dfs(root.right);return root.val == 2 ? left | right : left & right;}
}

2. 求根节点到叶节点数字之和

题目链接: 129. 求根节点到叶节点数字之和

题目内容:

  1. 求根节点到叶节点数字之和
    已解答
    中等
    相关标签
    相关企业
    给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。
    每条从根节点到叶节点的路径都代表一个数字:

例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。
计算从根节点到叶节点生成的 所有数字之和 。

叶节点 是指没有子节点的节点。

示例 1:
在这里插入图片描述
输入:root = [1,2,3]
输出:25
解释:
从根到叶子节点路径 1->2 代表数字 12
从根到叶子节点路径 1->3 代表数字 13
因此,数字总和 = 12 + 13 = 25

在这里插入图片描述
输入:root = [4,9,0,5,1]
输出:1026
解释:
从根到叶子节点路径 4->9->5 代表数字 495
从根到叶子节点路径 4->9->1 代表数字 491
从根到叶子节点路径 4->0 代表数字 40
因此,数字总和 = 495 + 491 + 40 = 1026

提示:

树中节点的数目在范围 [1, 1000] 内
0 <= Node.val <= 9
树的深度不超过 10

一. 分析题意


在这里插入图片描述

以上图得1节点为例,
第一: 需要接收来自上一层的49.
第二: 需要往下传递49*10+1=491.
第三: 到达叶子节点,需要将结果返回.
分析出这三点,就不难写出递归代码了.

二. 具体步骤

1. 大量重复子问题->(函数头)
上一层节点×10+根节点传给子节点.直到叶子节点才返回最终结果. int dfs(root,presum). presum记录上一层的值.

2. 某一子问题的工作流程

①计算当前的值,presum*10+root.val;
②前序遍历递归左子树
③前序遍历递归右子树

3. 递归出口
当前节点为叶子节点时,返回结果

三. 代码实现

class Solution {public int sumNumbers(TreeNode root) {return dfs(root,0);}public int dfs(TreeNode root,int presum) {presum = presum*10+root.val;if(root.left == null && root.right == null) {return presum;}int ret = 0;if(root.left != null) {ret += dfs(root.left,presum);}if(root.right != null) {ret += dfs(root.right,presum);}return ret;}
}


总结: 凡是能用递归来解决的二叉树题目, 要么是前序遍历,要么是后序遍历, 还有一部分是中序遍历.大部分题都是这样的,一般可以先尝试前序,再后序,最后中序.

本篇博客到这里就结束啦, 感谢观看 ❤❤❤

🐎期待与你的下一次相遇😊😊😊

http://www.dtcms.com/a/438188.html

相关文章:

  • 05_Pandas数据结构
  • OSPF协议详解3:网络类型、SPF算法、路由选择与特殊区域
  • 10.3总结
  • 算法比赛中的浮点数精度陷阱:从一个货币分解问题说起
  • 昆明手机网站开发不到网站是为什么
  • 反爬虫机制深度解析:从基础防御到高级对抗的完整技术实战
  • 爬坑 10 年!京东店铺全量商品接口实战开发:从分页优化、SKU 关联到数据完整性闭环
  • LeetCode每日一题——判断能否形成等差数列
  • springboot整合sa-token报未能获取有效的上下文处理器
  • 和别人做网站接单赚钱企业网站开发技术期末试题
  • AI-调查研究-93-具身智能 机器人仿真工具大全:从Gazebo到Isaac Sim的全面对比 六大仿真平台
  • 【计算机视觉】霍夫变换检测
  • 【Java核心技术/基础】25道Java核心技术基础面试题及答案
  • AI伦理困局:算法时代的公平与治理之道
  • 网站及app开发招聘榆中县城乡建设局网站
  • MySQL的MHA高可用集群解决方案应用实战(上)
  • 廊坊专业网站网站网站的制作建站人
  • list 实现链表封装节点的底层逻辑:如何克服不连续无法正常访问挑战
  • flash网站模板福州网络推广专员
  • tcpxtract安装教程
  • 1.3 前端框架:加速 LLM 应用开发
  • 从0死磕全栈之Next.js Server Actions 入门实战:在服务端安全执行逻辑,告别 API 路由!
  • 从传输层协议到 UDP:轻量高效的传输选择
  • C++ 11和20中的位域使用说明-2
  • 【数据结构】二叉树的高频热门面试题大全
  • 营口房产建设信息网站网站开发类合同范本
  • 石家庄哪里做网站没有网站怎么做seo
  • Akamai CDN 和 CloudFlare CDN 有什么具体区别?
  • Bash 中的 shopt -s globstar:递归 Glob 模式详解
  • LED驱动芯片FP7208选型指南:参数、应用场景与设计要点(宽压2.5-24V,恒流0.2V)