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

网站产品图怎么做php和网站开发

网站产品图怎么做,php和网站开发,html5软件下载手机版,iis5.1 新建网站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/810084.html

相关文章:

  • 如何建网站免费免费网页设计源码
  • 百度搜不到的网站广东省农业农村厅副厅长
  • 乔拓云智能建站免费注册广州网站建设 全包
  • 望城经开区建设开发公司门户网站现货黄金什么网站可以做直播
  • 滨湖区建设局官方网站做网站商城需要什么条件
  • 现在的网站开发用什么技术wordpress识图
  • wordpress背景偏暗谷歌优化教程
  • 网站策划书10个点怎么写规划设计导航网站
  • 共同建设网站心得页面跳转的方法
  • 交友类网站功能建设思路多种东莞微信网站建设
  • 网站建设 诺德中心如何在手机上开自己的网站
  • 网站搭建本地环境asp access网站开发实例精讲
  • 公司网站 域名 cn com专门看广告赚钱的app
  • 轴承外贸网站怎么做包括哪些内容
  • 有哪些好用的网站网站怎么接广告赚钱
  • 行政审批网站建设规范国外优秀网站设计
  • 商城微网站建设织梦网站选空间
  • 做一套公司网站费用起域名网站
  • wordpress如何搭建网站哈尔滨市公共资源交易中心
  • 服务器添加网站珠海网站建站
  • 有空间与域名 怎么做网站华文细黑做网站有版权吗
  • 安卓网站客户端制作网站建设方案有关内容
  • 出名的网站建设软件如何自己开网店做网店
  • 网站建设伍金手指下拉8h5网站设计
  • opencart zencart网站建设做公司网站 哪个程序用的多
  • 哪个网站可以做销售记录仪做职业背景调查的网站
  • 建设银行官方网站链接战略咨询公司
  • 网站注册查询网站建设依据什么法律
  • 网站响应时间长阿里云做网站送服务器
  • 网站建设初步课程介绍平板网站开发环境