博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode OJ:Path Sum II(路径和II)
阅读量:5830 次
发布时间:2019-06-18

本文共 1993 字,大约阅读时间需要 6 分钟。

Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum.

For example:

Given the below binary tree and sum = 22,

5             / \            4   8           /   / \          11  13  4         /  \    / \        7    2  5   1

return

[   [5,4,11,2],   [5,8,4,5]]

求路径的和与某一特定的值时候对等即可,简单的dfs,代码如下:

1 class Solution { 2 public: 3     vector
> pathSum(TreeNode* root, int sum) { 4 vector
res; 5 dfs(root, res, sum); 6 return ret; 7 } 8 9 void dfs(TreeNode * root, vector
res, int left)10 {11 if(!root) return;12 if(!root->left && !root->right && left == root->val){13 res.push_back(root->val);14 ret.push_back(res);15 }16 if(left <= root->val)17 return;18 else{19 res.push_back(root->val);20 if(root->left)21 dfs(root->left, res, left -= root->val);22 if(root->right)23 dfs(root->right, res, left -= root->val);24 }25 }26 private:27 vector
> ret;28 };

 java版本代码如下,方法相同,就是java的引用处理起来稍微麻烦点,递归尾部应该pop一下。

1 public class Solution { 2     public List
> pathSum(TreeNode root, int sum) { 3 List
> ret = new ArrayList
>(); 4 Stack
tmp = new Stack
(); 5 dfs(ret, tmp, root, sum); 6 return ret; 7 } 8 9 public void dfs(List
> ret, Stack
tmp, TreeNode root, int remain){10 if(root == null) return;11 tmp.push(root.val);12 if(root.left == null && root.right == null)13 if(remain == root.val)14 ret.add((Stack
)tmp.clone());15 if(root.left != null) dfs(ret, tmp, root.left, remain - root.val);16 if(root.right != null) dfs(ret, tmp, root.right, remain - root.val);17 tmp.pop();19 }20 }

 

转载于:https://www.cnblogs.com/-wang-cheng/p/4912308.html

你可能感兴趣的文章
Pedometer_forAndroid
查看>>
pyqt5开发环境安装
查看>>
https://blog.csdn.net/u012150179/article/details/38091411
查看>>
Mac 运行任何来源软件安装
查看>>
利用NATAPP隧道解决微信公众号开发之本地调试难题
查看>>
ros建立ospf邻居的条件
查看>>
服务容错模式
查看>>
inflate(int resource, ViewGroup root, boolean attachToRoot)见解
查看>>
网页性能优化:防止JavaScript、CSS阻塞浏览器渲染页面
查看>>
判断数组中是否存在重复的值,存在则删除,不存在则添加
查看>>
【BIRT】报表显示不全
查看>>
[LeetCode] Bricks Falling When Hit 碰撞时砖头掉落
查看>>
Jar包版本查看方法
查看>>
工作总结 string类型保存 "" 这种类型
查看>>
java热加载之springloaded
查看>>
Vue常用指令
查看>>
关于Android中根据ID名动态获取资源的两个方法
查看>>
Jvm(64),方法调用----解析
查看>>
[转]NLP数据集
查看>>
请自行检查是否安装VC9运行库??
查看>>