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

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

    思路

    回溯法。
    时间复杂度O(n),空间复杂度O(n)。

    代码

    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>> lists = new ArrayList<ArrayList<Integer>>();
        
        private ArrayList<Integer> list = new ArrayList<Integer>();
        
        public ArrayList<ArrayList<Integer>> FindPath(TreeNode root,int target) {
            if(root == null)    return lists;
            list.add(root.val);
            target -= root.val;
            if(target == 0 && root.left == null && root.right == null) {
                lists.add(new ArrayList<Integer>(list));
            } else {
                FindPath(root.left, target);
                FindPath(root.right, target);
            }
            list.remove(list.size()-1);
            return lists;
        }
    }
    
  • 相关阅读:
    Java学习心得16
    Java学习心得15
    Java学习心得14
    Java学习心得13
    Java学习心得12
    Java学习心得11
    Java学习心得10
    Java学习心得09
    Java学习心得08
    JVM垃圾回收
  • 原文地址:https://www.cnblogs.com/ustca/p/12345294.html
Copyright © 2011-2022 走看看