【剑指OFFER】面试题34. 二叉树中和为某一值的路径
发布日期:2021-06-29 19:46:22 浏览次数:2 分类:技术文章

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

题目:输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。

示例:

给定如下二叉树,以及目标和 sum = 22,

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

返回:

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

提示:

节点总数 <= 10000

解答

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */class Solution {
//回溯法 List
> list1 = new ArrayList
>(); public List
> pathSum(TreeNode root, int sum) { int total = 0; dfs(root, sum, total, new ArrayList
()); return list1; } public void dfs(TreeNode root, int sum,int total, List
list){ if(root == null) return; list.add(root.val); total += root.val; if(total == sum && root.left == null && root.right == null) { list1.add(new ArrayList<>(list)); }else{ dfs(root.left, sum, total, list); dfs(root.right, sum, total, list); } list.remove(list.size() - 1); }}

转载地址:https://darkness.blog.csdn.net/article/details/105823301 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【剑指OFFER】面试题35. 复杂链表的复制
下一篇:【剑指OFFER】面试题33. 二叉搜索树的后序遍历序列

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月27日 21时17分36秒