• [leetcode]Path Sum II



    问题描写叙述:

    Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum.

    For example:
    Given the below binary tree and sum = 22,
                  5
                 / 
                4   8
               /   / 
              11  13  4
             /      / 
            7    2  5   1
    

    return

    [
       [5,4,11,2],
       [5,8,4,5]
    ]
    

    public class TreeNode {
    	      int val;
    	      TreeNode left;
    	      TreeNode right;
    	      TreeNode(int x) { val = x; }
    	 }
    	
    	public List<List<Integer>> pathSum(TreeNode root, int sum) {
    		if(root == null)
        		return new ArrayList();
    		
    		List<List<Integer>> result = new LinkedList<List<Integer>>();
    		List<Integer> list = new LinkedList<Integer>();
    		
    		getPathNum(root, sum,list,result);
    		return result;
        }
    	
    	public void getPathNum(TreeNode root, int sum,List<Integer> list,List<List<Integer>> result){
        	if(root.left == null && root.right ==null){
        		if(sum == root.val){
        			List<Integer> tmp = new LinkedList<Integer>(list);
        			tmp.add(root.val);
        			result.add(tmp);
        			return;
        		}
        		else return;
        		
        	}
        	
        	list.add(root.val);
    		List<Integer> ltmp = new LinkedList<Integer>(list);
    		List<Integer> rtmp = new LinkedList<Integer>(list);
    		
        	if(root.left !=null)
        		getPathNum(root.left, sum-root.val,ltmp,result);
        	if(root.right !=null)
        		getPathNum(root.right, sum-root.val,rtmp, result);
        	
        }
    
    
    
    

  • 相关阅读:
    mysql修改库、表、字段 字符集,中文排序
    CENTOS6.5 编译安装MySQL5.7.14
    自己的一个小小的目标
    css 浮动和清除浮动
    移动端调试方法
    Fiddler抓包工具总结
    Vue中错误图片的处理
    跨域资源共享 CORS 详解
    十大排序算法JavaScript实现总结
    javascript实现二叉搜索树
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/5322710.html
Copyright © 2020-2023  润新知