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

php怎么做网页杭州优化seo公司

php怎么做网页,杭州优化seo公司,php 微信 网站开发,石家庄网站建设q.479185700棒257. 二叉树的所有路径 给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。 叶子节点 是指没有子节点的节点。 示例 1: 输入:root [1,2,3,null,5] 输出:["1->2->5",&quo…

257. 二叉树的所有路径

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

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

示例 1:

输入:root = [1,2,3,null,5]
输出:["1->2->5","1->3"]

示例 2:

输入:root = [1]
输出:["1"]

提示:

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

 解法一:全局变量path来存放

使用dfs先将每条路径存储在一个vector中,最后再从vector转入string中。

为什么使用vector?因为在dfs操作的时候使用的是全局变量temp来记录每次的路径元素,使用vector可以很容易的进行push pop 操作,其实使用string temp也可以,不过会比较麻烦。

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:vector<string> res;vector<string> binaryTreePaths(TreeNode* root) {PreOrder(root);// Print();for(int i = 0; i < ret.size(); i++){string temp;for(int j = 0; j < ret[i].size(); j++){if(j > 0)temp += "->";temp += to_string(ret[i][j]);}res.push_back(temp);}return res;}vector<vector<int>> ret;vector<int> temp;void PreOrder(TreeNode* root){if(root == nullptr)return;temp.push_back(root->val);if(root->left == nullptr && root->right == nullptr){ret.push_back(temp);}PreOrder(root->left);PreOrder(root->right);temp.pop_back();}void Print(){for(int i = 0; i < ret.size(); i++){for(int j = 0; j < ret[i].size(); j++)cout<<ret[i][j]<<" ";cout<<endl;}}
};

解法二:path放入函数头上进行传参

在进行dfs操作时候分为俩种情况  叶子节点 和  非叶子节点

访问到叶子结点时,说明path中存放了一条合理的路径,我们直接将其放入res结果即可,在函数返回的时候path中之前新插入的元素随着栈帧的返回自行进行pop,省略了我们需要进行pop这一步骤

class Solution {
public:vector<string> res;vector<string> binaryTreePaths(TreeNode* root) {string path;dfs(root, path);return res;}void dfs(TreeNode* root, string path){if(root == nullptr)return;if(root->left == nullptr && root->right == nullptr){path += to_string(root->val);res.push_back(path);return;}else{path += to_string(root->val); //相同的操作可以提前放判断之前path += "->";    // 前面没有return可以直接放在判断之后}dfs(root->left, path);dfs(root->right, path);}
};

优化后:

class Solution {
public:vector<string> res;vector<string> binaryTreePaths(TreeNode* root) {string path;dfs(root, path);return res;}void dfs(TreeNode* root, string path){if(root == nullptr)return;path += to_string(root->val);if(root->left == nullptr && root->right == nullptr){res.push_back(path);return;}path += "->";dfs(root->left, path);dfs(root->right, path);}
};

http://www.dtcms.com/wzjs/339728.html

相关文章:

  • 无锡集团网站建设百度指数购买
  • b2c的网站有哪些上海网络营销seo
  • 江阴做网站公司太原百度seo排名软件
  • 谁有做爰网站号公司官网优化方案
  • 学做网站教程网络营销推广策划
  • 杭州做网站的公司哪家好识万物扫一扫
  • 什么专业的会做网站手机助手
  • 做网站都需要做什么百度竞价项目
  • 怎么介绍自己做的电影网站吗网站seo具体怎么做?
  • 湖南网站建设打开百度网站
  • 公司建站seo优化培训学校
  • 如何建设微信网站域名访问网站
  • 规范网站建设搜索引擎营销的原理
  • 广西网站建设智能优化中国产品网
  • 企业展厅设计公司的区别在哪如何做网站seo
  • 公司网站维护工作内容自助建站官网
  • 微电影分享网站织梦整站源码网络营销和网络推广
  • 网站排名稳定后后期如何优化网站的优化从哪里进行
  • 专业建设目标如何表述seo优化推广
  • 佛山医疗网站建设seowhy培训
  • 适合个人做的网站成都网站排名 生客seo
  • 做网站一般哪里找制作网站教程
  • 建德网站制作公司百度搜索下载
  • 盘锦门户网站建设郑州seo顾问培训
  • html 网站发布广东疫情中高风险地区最新名单
  • 中山外贸网站建设公司收录查询api
  • 做企业网站的轻量级cms重庆专业做网站公司
  • 咸阳网站建设专业公司关键词在线听免费
  • 企业网站推广的线上渠道百度怎么收录自己的网站
  • 做公司网站需要注意什么怎么做产品推广和宣传