《剑指Offer——二叉树中和为某一值的路径》代码
Posted 穿迷彩服的鲨鱼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《剑指Offer——二叉树中和为某一值的路径》代码相关的知识,希望对你有一定的参考价值。
二叉树中和为某一值的路径
前言
//==================================================================
// 《剑指Offer——二叉树中和为某一值的路径》代码
// 题目:输入一棵二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所
// 有路径。从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
//==================================================================
一、示例
1.二叉树中和为某一值的路径
二、代码解析
1.新建.cpp文件
代码如下(示例):
//==================================================================
// 《剑指Offer——二叉树中和为某一值的路径》代码
// 题目:输入一棵二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所
// 有路径。从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
//==================================================================
#include <iostream>
#include<vector>
using namespace std;
struct TreeNode
{
int val;
TreeNode* left;
TreeNode* right;
};
vector<vector<int>> resArr;
vector<int> tmpArr;
void dif(TreeNode* root, int target, int k)
{
if (root == nullptr)return;
tmpArr.push_back(root->val);
k += root->val;
if (k == target && root->left == nullptr && root->right == nullptr)
{
resArr.push_back(tmpArr);
}
dif(root->left, target, k);
dif(root->right, target, k);
tmpArr.pop_back();
}
vector<vector<int>> pathSum(TreeNode* root, int target)
{
if (root == nullptr)
{
return resArr;
}
int k = 0;
dif(root, target, k);
return resArr;
}
三,测试
以上是关于《剑指Offer——二叉树中和为某一值的路径》代码的主要内容,如果未能解决你的问题,请参考以下文章