• 牛客网 二叉树中和为某一值的路径


    题目:

    输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)

    解题:

    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 {
        public ArrayList<ArrayList<Integer>> FindPath(TreeNode root,int target) {
            ArrayList<ArrayList<Integer>> arr = new ArrayList<ArrayList<Integer>>();
            if(root == null)
                return arr;
            ArrayList<Integer> a1 = new ArrayList<Integer>();
            int sum = 0;
            pa(root,target,arr,a1,sum);
            return arr;
        }
        public void pa(TreeNode root,int target,ArrayList<ArrayList<Integer>> arr, ArrayList<Integer> a1,int sum){
            if(root == null)
                return ;
            sum += root.val;
            if(root.left == null && root.right == null){
                if(sum == target)
                {
                    a1.add(root.val);
                    arr.add(new ArrayList<Integer>(a1));
                    a1.remove(a1.size() - 1);
                }
                return ;
            }
            a1.add(root.val);
            pa(root.left,target,arr,a1,sum);
            pa(root.right,target,arr,a1,sum);
            a1.remove(a1.size() - 1);
        }
    }
  • 相关阅读:
    【SICP练习】129 练习3.60
    【SICP练习】128 练习3.59
    【SICP练习】127 练习3.58
    【SICP练习】126 练习3.57
    【SICP练习】125 练习3.56
    【SICP练习】124 练习3.55
    【SICP练习】123 练习3.54
    【SICP练习】122 练习3.53
    【SICP练习】121 练习3.52
    【SICP练习】120 练习3.51
  • 原文地址:https://www.cnblogs.com/yanhowever/p/12298399.html
Copyright © 2020-2023  润新知