zoukankan      html  css  js  c++  java
  • [leetcode] Path Sum

    问题描写叙述:

    Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.

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

    return true, as there exist a root-to-leaf path 5->4->11->2 which sum is 22.



    代码:

    public class TreeNode {
    	      int val;
    	      TreeNode left;
    	      TreeNode right;
    	      TreeNode(int x) { val = x; }
    	 }
    	
    	    public boolean hasPathSum(TreeNode root, int sum) {
    	    	if(root == null)
    	    		return false;
    	    	
    	    	 return getPathNum(root,sum);
    	    	
    	    	
    	    	
    	    }
    	    
    	    public boolean getPathNum(TreeNode root, int sum){
    	    	if(root.left == null && root.right ==null){
    	    		if(sum == root.val)
    	    			return true;
    	    		else return false;
    	    		
    	    	}
    	    	
    	    	
    	    	boolean ltest = false;
    	    	boolean rtest = false;
    	    	
    	    	if(root.left !=null)
    	    		ltest = getPathNum(root.left, sum-root.val);
    	    	if(root.right !=null)
    	    		rtest = getPathNum(root.right, sum-root.val);
    	    	
    	    	return (ltest||rtest);
    	    }
    	    


  • 相关阅读:
    重构该何时登场
    重构
    中国剩余定理
    连分数的应用
    连分数的性质
    有限连分数与欧几里德除法的联系
    连分数
    费马大定理
    P4178 Tree 点分治
    LOJ 6029. 「雅礼集训 2017 Day1」市场
  • 原文地址:https://www.cnblogs.com/lxjshuju/p/7257648.html
Copyright © 2011-2022 走看看