• 24. dfs数的路径查找


    输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。

    路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。

    (注意: 在返回值的list中,数组长度大的数组靠前)

    头疼题。

    参考:https://blog.csdn.net/u014525494/article/details/80978647 

    当然他做的有问题;

    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 {
          ArrayList<ArrayList<Integer>> result = new ArrayList<ArrayList<Integer>>();
          ArrayList<Integer> arr = new ArrayList<Integer>();
          int num = 0;
        public ArrayList<ArrayList<Integer>> FindPath(TreeNode root,int target) {
            
            if(root==null){
                return result;
            }
            //没有左右节点视为叶子
            boolean isLeaf = root.left==null&&root.right==null;
            num+=root.val;
            
            arr.add(root.val);
            
            //从上到叶子查询
            if(num==target&&isLeaf){
                ArrayList<Integer> path = new ArrayList<Integer>();
                for(int i=0;i<arr.size();i++){
                    path.add(arr.get(i));
                }
                result.add(path);
            }
            if(num<target&&root.left!=null){
                FindPath(root.left,target);
            }
            if(num<target&&root.right!=null){
                FindPath(root.right,target);
            }
            
            num-=root.val;
            //回退,如果不是这个值
            arr.remove(arr.size()-1);
            return result;
        }
    }
    

      

  • 相关阅读:
    深入入门正则表达式(java) 匹配原理 2 回溯
    java实现sftp实例
    自定义注解
    java构造器
    Does the parameter type of the setter match the return type of the getter?
    JAVA经典算法40题(18)
    关于session的详细解释
    .net上传功能fileupload代码
    ContentUris类使用介绍
    java回顾之类初级
  • 原文地址:https://www.cnblogs.com/wzQingtTian/p/10662939.html
Copyright © 2020-2023  润新知