LeetCode 257 二叉树的所有路径
题目:
给定一个二叉树,返回所有从根节点到叶子节点的路径。
说明: 叶子节点是指没有子节点的节点。
示例:
输入: 1
/ \
2 3
\
5 输出: ["1->2->5", "1->3"] 解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3
解题思路:
递归,在参数列表里回溯的方法灰常好用,这里介绍两种方法。
代码:
法一:
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
vector<string> binaryTreePaths(TreeNode* root) {
vector<string> ans;
if(root == NULL)
return ans;
if(!root->left && !root->right)
ans.push_back(to_string(root->val));
vector<string> leftSub = binaryTreePaths(root->left);
for(int i=; i<leftSub.size(); ++i)
ans.push_back(to_string(root->val) + "->" + leftSub[i]);
vector<string> rightSub = binaryTreePaths(root->right);
for(int i=; i<rightSub.size(); ++i)
ans.push_back(to_string(root->val) + "->" + rightSub[i]);
return ans;
}
};
参考来源:https://blog.csdn.net/my_clear_mind/article/details/82283939
法二:
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
void DFS(TreeNode* root, string temp, vector<string> &ans)
{
if(root == NULL) {
return ;
}
if(root->left == NULL && root->right == NULL) {
temp += to_string(root->val);
ans.push_back(temp);
return ;
}
if(root->left) {
DFS(root->left, temp + to_string(root->val) + "->", ans);
}
if(root->right) {
DFS(root->right, temp + to_string(root->val) + "->", ans);
}
}
vector<string> binaryTreePaths(TreeNode* root) {
vector<string> ans;
if(root == NULL)
return ans;
DFS(root, "", ans);
return ans;
}
};
LeetCode 257 二叉树的所有路径的更多相关文章
- Java实现 LeetCode 257 二叉树的所有路径
257. 二叉树的所有路径 给定一个二叉树,返回所有从根节点到叶子节点的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 输入: 1 / \ 2 3 \ 5 输出: ["1->2 ...
- leetcode 257. 二叉树的所有路径 包含(二叉树的先序遍历、中序遍历、后序遍历)
给定一个二叉树,返回所有从根节点到叶子节点的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 输入: 1 / \2 3 \ 5 输出: ["1->2->5", & ...
- LeetCode 257.二叉树所有路径(C++)
给定一个二叉树,返回所有从根节点到叶子节点的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 输入: 1 / \ 2 3 \ 5 输出: ["1->2->5", ...
- 领扣(LeetCode)二叉树的所有路径 个人题解
给定一个二叉树,返回所有从根节点到叶子节点的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 输入: 1 / \ 2 3 \ 5 输出: ["1->2->5", ...
- LeetCode 124 二叉树中最大路径和
题目: 给定一个非空二叉树,返回其最大路径和. 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列.该路径至少包含一个节点,且不一定经过根节点. 思路:递归 分为三部分,根节点,左子树,右 ...
- 【二叉树-所有路经系列(根->叶子)】二叉树的所有路径、路径总和 II、路径总和、求根到叶子节点数字之和(DFS)
总述 全部用DFS来做 重点一:参数的设置:为Root,路径字符串,路径List集合. 重点二:步骤: 1 节点为null 2 所有节点的操作 3 叶子结点的操作 4 非叶节点的操作 题目257. 二 ...
- [LeetCode] 257. Binary Tree Paths 二叉树路径
Given a binary tree, return all root-to-leaf paths. For example, given the following binary tree: 1 ...
- [LeetCode] Binary Tree Maximum Path Sum 求二叉树的最大路径和
Given a binary tree, find the maximum path sum. The path may start and end at any node in the tree. ...
- [LeetCode] 124. Binary Tree Maximum Path Sum 求二叉树的最大路径和
Given a non-empty binary tree, find the maximum path sum. For this problem, a path is defined as any ...
随机推荐
- <转>jmeter(二十一)jmeter常用插件介绍
本博客转载自:http://www.cnblogs.com/imyalost/category/846346.html 个人感觉不错,对jmeter讲解非常详细,担心以后找不到了,所以转发出来,留着慢 ...
- MySQL插入去重命令_INSERT IGNORE INTO
之前在介绍INSERT INTO命令时,曾经提到,该命令在执行数据插入操作时,会在数据库中对元组的主键进行检测,若没有存在,则执行插入动作,若存在,则会报错. 而INSERT IGNORE INTO命 ...
- opencv计算两个轮廓之间hu矩相似程度,MatchShapes
https://blog.csdn.net/jiake_yang/article/details/52589063 [OpenCV3.3]通过透视变换矫正变形图像 https://blog.csdn. ...
- 调用WebService的简单方法
package com.xxx.webservice.internal.test; import java.net.MalformedURLException; import java.net.URL ...
- sliver
import 'package:flutter/material.dart';import 'package:xxx/bloc/bloc.dart';import 'package:xxx/model ...
- jsp传Array数组到后台
jsp页面传递对象数组到后台的需求 JSP: //保存 $("#submitBtn").click(function(){ var flag = true; var eachfla ...
- FL studio钢琴卷工具简介
FL studio中的钢琴卷工具在业内各编曲软件中享有当之无愧的声誉.钢琴卷是一款将音符和自动数据发送到钢琴卷的频道相关联的插件.而钢琴卷的这个操作运行过程被称为“排序”. 下面给大家介绍讲解钢琴卷中 ...
- loj#2483. 「CEOI2017」Building Bridges 斜率优化 cdq分治
loj#2483. 「CEOI2017」Building Bridges 链接 https://loj.ac/problem/2483 思路 \[f[i]=f[j]+(h[i]-h[j])^2+(su ...
- 两个JS的不好设计
1.相等判断 if(a){} 相当于 if(a == ture){} 然而下面的相等判断都为true 0 == false "" == false "false" ...
- 本地构建:Gulp
Gulp中文网:https://www.gulpjs.com.cn/ Gulp英文网:https://gulpjs.com/ Gulp:工作流程自动化+强化 (一)安装初始化 (二)基础API及插件 ...