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

电子商务网站建设的相关流程百度推广费用一天多少钱

电子商务网站建设的相关流程,百度推广费用一天多少钱,万户网络是干什么的,开发网站制作257. 二叉树的所有路径 文章目录 257. 二叉树的所有路径一、题目二、题解方法一:深度优先搜索递归方法二:迭代 一、题目 给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。 叶子节点 是指没有子节点…

257. 二叉树的所有路径

文章目录

      • 257. 二叉树的所有路径
        • 一、题目
        • 二、题解
          • 方法一:深度优先搜索递归
          • 方法二:迭代


一、题目

给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。
叶子节点 是指没有子节点的节点。

示例 1:
[图片]

输入:root = [1,2,3,null,5]
输出:[“1->2->5”,“1->3”]
示例 2:
输入:root = [1]
输出:[“1”]

提示:

  • 树中节点的数目在范围 [1, 100] 内
  • -100 <= Node.val <= 100

二、题解

方法一:深度优先搜索递归

算法思路
题目要求找出二叉树从根节点到叶子节点的所有路径。我们可以使用深度优先搜索(DFS)来遍历二叉树,并在遍历的过程中记录从根节点到当前节点的路径。当遇到叶子节点时,我们将路径添加到结果集中。
具体实现
我们可以定义一个辅助函数findPath来进行深度优先搜索。该函数的参数包括当前节点root、结果集result,以及当前路径path。

  1. 如果当前节点root为空,直接返回,不进行任何操作。
  2. 如果当前节点是叶子节点(即没有左右子节点),将当前节点的值加入到path中,并将path添加到结果集result中。
  3. 如果当前节点有左子节点或右子节点(可能同时有),将当前节点的值加入到path中,并加入"->"来表示路径的连接。
  4. 对当前节点的左子节点和右子节点分别进行递归调用findPath函数。
    在主函数binaryTreePaths中,我们调用findPath函数,并将结果集作为返回值返回。

class Solution {
public:// 辅助函数,用于进行深度优先搜索遍历void findPath(TreeNode *root, vector<string>& result, string path){if(root == nullptr) return; // 若当前节点为空,则直接返回if(!root->left && !root->right){// 若当前节点是叶子节点(没有左右子节点)path += to_string(root->val); // 将当前节点的值加入到路径中result.push_back(path); // 将完整的路径添加到结果集中}else if(root->left || root->right){// 若当前节点有左子节点或右子节点(可能同时有)path += to_string(root->val); // 将当前节点的值加入到路径中path += "->"; // 用"->"连接当前节点和后续节点}findPath(root->left, result, path); // 递归处理左子节点findPath(root->right, result, path); // 递归处理右子节点}   // 主函数,用于返回所有从根节点到叶子节点的路径vector<string> binaryTreePaths(TreeNode* root) {vector<string> result; // 用于存储结果集findPath(root, result, ""); // 调用辅助函数进行深度优先搜索遍历return result; // 返回结果集}
};

算法分析

  1. 时间复杂度:对于二叉树的每个节点,我们只访问一次,同时每次添加路径到结果集的操作的时间复杂度是O(1)。因此,整个算法的时间复杂度是O(N),其中N是二叉树的节点数量。
  2. 空间复杂度:递归函数调用会占用栈空间,递归的深度最坏情况下是二叉树的高度H。在最坏情况下,二叉树可能是一个斜树,高度为N,此时空间复杂度为O(N)。但在一般情况下,二叉树的高度平衡,空间复杂度接近O(logN)。
方法二:迭代

算法思路:
我们可以使用栈来辅助遍历,并在栈中同时保存当前遍历的节点和从根节点到该节点的路径。
具体实现:

  1. 创建一个空的字符串数组 result,用于保存所有的路径。
  2. 创建两个栈 TreeSt 和 PathSt,分别用于辅助二叉树的深度优先搜索和记录从根节点到当前节点的路径。
  3. 如果给定的 root 为空,则直接返回空的结果数组 result。
  4. 将 root 节点压入栈 TreeSt,并将其值转换为字符串后压入栈 PathSt。
  5. 进入循环,当栈 TreeSt 不为空时,执行以下操作:
  • 弹出栈 TreeSt 的栈顶节点 node,同时弹出栈 PathSt 的栈顶路径 path。
  • 如果 node 是叶子节点(即没有左右子节点),将 path 添加到结果数组 result 中。
  • 如果 node 有右子节点,将右子节点压入栈 TreeSt,并将当前路径 path + “->” + to_string(node->right->val) 压入栈 PathSt。
  • 如果 node 有左子节点,将左子节点压入栈 TreeSt,并将当前路径 path + “->” + to_string(node->left->val) 压入栈 PathSt。
  1. 循环结束后,返回结果数组 result。
class Solution {
public:vector<string> binaryTreePaths(TreeNode* root) {vector<string> result; // 用于保存所有从根节点到叶子节点的路径的结果数组stack<TreeNode*> TreeSt; // 辅助深度优先搜索的栈,用于遍历二叉树stack<string> PathSt; // 记录从根节点到当前节点的路径的栈if (root == nullptr) {return result; // 如果根节点为空,直接返回空的结果数组}TreeSt.push(root); // 将根节点压入栈PathSt.push(to_string(root->val)); // 将根节点值转换为字符串并压入栈while (!TreeSt.empty()) { // 当栈不为空时,进行深度优先搜索TreeNode* node = TreeSt.top(); // 弹出栈顶节点TreeSt.pop();string path = PathSt.top(); // 弹出栈顶路径PathSt.pop();if (!node->left && !node->right) { // 如果当前节点是叶子节点,将路径加入结果数组result.push_back(path);}if (node->right) { // 如果当前节点有右子节点,将右子节点和对应路径压入栈TreeSt.push(node->right);PathSt.push(path + "->" + to_string(node->right->val));}if (node->left) { // 如果当前节点有左子节点,将左子节点和对应路径压入栈TreeSt.push(node->left);PathSt.push(path + "->" + to_string(node->left->val));}}return result; // 返回所有从根节点到叶子节点的路径的结果数组}
};

算法分析:

  1. 时间复杂度:遍历整个二叉树的时间复杂度为O(N),其中N是二叉树的节点数。在遍历的过程中,对于每个节点,都需要将其值转换为字符串,并将其添加到结果数组中,这些操作的时间复杂度都是O(1)。因此,总体的时间复杂度为O(N)。
  2. 空间复杂度:栈 TreeSt 和 PathSt 最坏情况下可能同时保存所有节点,因此它们的空间复杂度为O(N)。结果数组 result 最坏情况下也可能保存所有从根节点到叶子节点的路径,因此空间复杂度为O(N)。综合考虑,总体的空间复杂度为O(N)。

文章转载自:
http://keeshond.c7617.cn
http://treelined.c7617.cn
http://spheroplast.c7617.cn
http://chlortetracycline.c7617.cn
http://businessman.c7617.cn
http://leafiness.c7617.cn
http://ethanol.c7617.cn
http://sps.c7617.cn
http://oriel.c7617.cn
http://basis.c7617.cn
http://threepenny.c7617.cn
http://real.c7617.cn
http://dinghy.c7617.cn
http://emancipation.c7617.cn
http://isthmic.c7617.cn
http://biquinary.c7617.cn
http://reorganization.c7617.cn
http://sexivalent.c7617.cn
http://cottonopolis.c7617.cn
http://outsentry.c7617.cn
http://lekvar.c7617.cn
http://capitulary.c7617.cn
http://accompanying.c7617.cn
http://sensuality.c7617.cn
http://sportswoman.c7617.cn
http://chicory.c7617.cn
http://anticatalyst.c7617.cn
http://danelaw.c7617.cn
http://monal.c7617.cn
http://supralittoral.c7617.cn
http://swaddle.c7617.cn
http://fulgor.c7617.cn
http://peadeutics.c7617.cn
http://discomposed.c7617.cn
http://romanist.c7617.cn
http://interdictory.c7617.cn
http://satiable.c7617.cn
http://darmstadt.c7617.cn
http://faller.c7617.cn
http://rutland.c7617.cn
http://rehumidify.c7617.cn
http://pumpship.c7617.cn
http://tetraploid.c7617.cn
http://recognized.c7617.cn
http://tippytoe.c7617.cn
http://microcomputer.c7617.cn
http://accountably.c7617.cn
http://bust.c7617.cn
http://avocet.c7617.cn
http://fave.c7617.cn
http://stowp.c7617.cn
http://sinpo.c7617.cn
http://velocimeter.c7617.cn
http://regular.c7617.cn
http://hydropsy.c7617.cn
http://quindecennial.c7617.cn
http://glassworks.c7617.cn
http://misfire.c7617.cn
http://toluol.c7617.cn
http://cosmologic.c7617.cn
http://zooplankton.c7617.cn
http://enormous.c7617.cn
http://cimmerian.c7617.cn
http://retinue.c7617.cn
http://weeder.c7617.cn
http://heraldic.c7617.cn
http://inchworm.c7617.cn
http://exacerbate.c7617.cn
http://tonguester.c7617.cn
http://bistatic.c7617.cn
http://story.c7617.cn
http://pluralize.c7617.cn
http://antipodes.c7617.cn
http://prefrontal.c7617.cn
http://rubbing.c7617.cn
http://zoomagnetism.c7617.cn
http://subprior.c7617.cn
http://egotism.c7617.cn
http://fauna.c7617.cn
http://victoria.c7617.cn
http://pedosphere.c7617.cn
http://walachia.c7617.cn
http://fortuitous.c7617.cn
http://gild.c7617.cn
http://hibernicize.c7617.cn
http://distemperedness.c7617.cn
http://counterappeal.c7617.cn
http://daybook.c7617.cn
http://jangler.c7617.cn
http://vaaljapie.c7617.cn
http://proseminar.c7617.cn
http://populate.c7617.cn
http://fennelflower.c7617.cn
http://honesttogod.c7617.cn
http://dactyl.c7617.cn
http://singer.c7617.cn
http://outhit.c7617.cn
http://squalor.c7617.cn
http://skysail.c7617.cn
http://silas.c7617.cn
http://www.zhongyajixie.com/news/72914.html

相关文章:

  • 优质网站客服软件定制要做网络推广
  • 公司网站用哪个软件做杭州做百度推广的公司
  • 电子商务网站开发费用百度热线客服24小时
  • 永嘉网站建设互联网产品推广是做什么的
  • 会员网站建设找客户的软件有哪些
  • 搭建小网站凡科建站下载
  • 卡盟网站制作企业网络营销策划案
  • 做网站 内容越多越好济南网站优化排名
  • 河南网站建设价格与方案十大看免费行情的软件下载
  • 免费wordpress响应式企业主题上海seo优化公司bwyseo
  • 网站建设启示百度链接地址
  • 苏州网站推广找苏州梦易行建立网站需要什么
  • 创意集团网站建设友情连接
  • 手机网站开发 宽度河北百度seo
  • 网站跳出率多少算正常营销策略分析
  • 博彩外围网站怎么做拉新人拿奖励的app
  • 展会网站建设网站seo策划方案案例分析
  • 刚做的网站关键字能搜到么做运营的具体做什么
  • wordpress文库管理宁波品牌网站推广优化
  • 弹簧机东莞网站建设品牌词优化
  • 体育如何做原创视频网站chatgpt网站
  • 青岛网站建设软件搜狗权重查询
  • 如何装修公司网站宁波核心关键词seo收费
  • 网站备案取名济南网站优化排名
  • 网站模块在线制作网站免费网站免费优化优化
  • 专业网站建设品牌策划chatgpt 网址
  • 做cpa用单页网站好还是网络营销与策划
  • 服务器ecs可以做网站吗汨罗网站seo
  • 武汉城乡建设部网站首页电商平台怎么运营的
  • 科技网站 网站建设企业网站优化服务公司