zoukankan      html  css  js  c++  java
  • 二叉树中和为某一值的路径

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

    思路:递归回溯。先从先序遍历递归到叶子节点然后回溯所有的解。满足就加入结果集合。

    实现代码:

    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<ArrayList<Integer>> retList;
        private ArrayList<Integer> oneList;
        public Solution() {
            retList = new ArrayList<ArrayList<Integer>>();
            oneList = new ArrayList<Integer>();
        }
        public ArrayList<ArrayList<Integer>> FindPath(TreeNode root,int target) {
            if(root == null)
                return retList;
            
            oneList.add(root.val);
            target -= root.val;
            if(target == 0 && root.left == null && root.right == null) {
                retList.add(new ArrayList<Integer>(oneList));
            }
            
            FindPath(root.left, target);
            FindPath(root.right, target);
            
            oneList.remove(oneList.size()-1);
    
            return retList;
        }
    }
  • 相关阅读:
    邪恶的强制数据转换
    知识普及
    判断是否为一个数字
    parseInt
    webpack学习记录
    数组隐藏属性
    elasticSearch基本使用
    elasticsearch安装和部署
    neo4j索引
    spark yarn 提交作业
  • 原文地址:https://www.cnblogs.com/wxisme/p/5456434.html
Copyright © 2011-2022 走看看