栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

113. 路径总和 II

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

113. 路径总和 II

  • 思路
    二叉树路径问题 dfs + 回溯

class Solution 
{
public:	
	void traversal(TreeNode* cur, int count)
	{
		if(cur->left == nullptr && cur->right == nullptr && count == 0)
		{
			res.push_back(path);
			return ;
		}
		
		if(cur->left == nullptr && cur->right == nullptr)
		{
			return ;
		}
		
		if(cur->left)
		{
			path.push_back(cur->left->val);
			count -= cur->left->val;
			traversal(cur->left, count);//递归
			count += cur->left->val;//回溯
			path.pop_back();//回溯
		}
		if(cur->right)
		{
			path.push_back(cur->right->val);
			count -= cur->right->val;
			traversal(cur->right, count);
			count += cur->right->val;
			path.pop_back();
		}

		return ;
	}

	vector> pathSum(TreeNode* root, int targetSum) 
	{	
		if(root == nullptr)
		{
			return res;
		}
		
        res.clear();
        path.clear();
        path.push_back(root->val);
		traversal(root, targetSum - root->val);
		
		return res;
	}

private:
	vector> res;
	vector path;
};


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/588232.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号