《剑指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——二叉树中和为某一值的路径》代码的主要内容,如果未能解决你的问题,请参考以下文章

剑指offer二叉树中和为某一值的路径python

剑指offer---二叉树中和为某一值的路径

剑指OFFER 二叉树中和为某一值的路径

剑指offer二十四之二叉树中和为某一值的路径

剑指offer 二叉树中和为某一值的路径

Java 剑指offer(34) 二叉树中和为某一值的路径