博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在二叉树中找出和为某一值的所有路径
阅读量:2349 次
发布时间:2019-05-10

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

题目:输入一个整数和一棵二元树。

从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。

打印出和与输入整数相等的所有路径。

例如输入整数22 和如下二元树

10

/ \

5 12

/ \

4 7

则打印出两条路径:10, 12 和10, 5, 7。

二元树节点的数据结构定义为:

struct BinaryTreeNode // a node in the binary tree

{

int value; // value of node

BinaryTreeNode *left; // left child of node

BinaryTreeNode *right; // right child of node

};

思路:递归遍历的同时回溯,用一个数组存放路径

import java.util.ArrayList;/**public class TreeNode {    int val = 0;    TreeNode left = null;    TreeNode right = null;    public TreeNode(int val) {        this.val = val;    }}*/public class Solution {    private ArrayList
> listAll = new ArrayList
>(); private ArrayList
list = new ArrayList
(); public ArrayList
> FindPath(TreeNode root,int target) { if(root == null) return listAll; list.add(root.val); target -= root.val; if(target == 0 && root.left == null && root.right == null) listAll.add(new ArrayList
(list)); FindPath(root.left, target); FindPath(root.right, target); list.remove(list.size()-1); return listAll; }}
 

转载地址:http://jomvb.baihongyu.com/

你可能感兴趣的文章
碎片清理
查看>>
程序员不能错过的技术网站
查看>>
冒泡排序(分析+代码调优)
查看>>
Vue
查看>>
乐优商城总结
查看>>
如何使用Git上传和更新项目至Github
查看>>
选择排序(分析+代码调优)
查看>>
Docker
查看>>
代码优化建议,44条代码优化细节
查看>>
快速排序(图解分析+代码调优)
查看>>
Java基础面试总结
查看>>
HashMap遍历几种方式比较(传统的Map迭代方式对比JDK8的迭代方式)
查看>>
Java面试& HashMap实现原理分析
查看>>
PS修改动图字幕
查看>>
八大基础排序总结
查看>>
Linux下安装使用FastDFS
查看>>
后台管理系统之品牌管理
查看>>
后台管理系统之商品规格管理
查看>>
后台管理系统之商品管理
查看>>
商品详情及Thymeleaf静态化
查看>>