zoukankan      html  css  js  c++  java
  • 437. 路径总和 III

    给定一个二叉树,它的每个结点都存放着一个整数值。

    找出路径和等于给定数值的路径总数。

    路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。

    二叉树不超过1000个节点,且节点数值范围是 [-1000000,1000000] 的整数。

    示例:

    root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8
    
          10
         /  
        5   -3
       /     
      3   2   11
     /    
    3  -2   1
    
    返回 3。和等于 8 的路径有:
    
    1.  5 -> 3
    2.  5 -> 2 -> 1
    3.  -3 -> 11
    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    class Solution {
        public int pathSum(TreeNode root, int sum) {
            if(root == null)
                return 0;
            int returnCount = 0;
            Queue<TreeNode> queue = new LinkedList();
            queue.add(root);
            while(!queue.isEmpty())
            {
                int count = 0;
                TreeNode Node = queue.poll();
                if(Node.left != null)
                {
                    queue.offer(Node.left);
                }
                if(Node.right != null)
                {
                    queue.offer(Node.right);
                }
                returnCount += Sum(Node, sum, Node.val);           
            }
            return returnCount;
        }
        public int Sum(TreeNode Node, int sum, int tmpSum)
        {
            int count = 0;    //记录从结点Node出发符合条件的数量     
            if(tmpSum == sum)
                {count++;}
            int leftnum = tmpSum;
            if(Node.left != null)
            {
                TreeNode tmpNode = Node.left;           
                leftnum += tmpNode.val;
                count += Sum(tmpNode, sum, leftnum);
            }
            int rightnum = tmpSum;
            if(Node.right != null)
            {
                TreeNode tmpNode = Node.right;            
                rightnum += tmpNode.val;
                count += Sum(tmpNode, sum, rightnum);
            }
            return count;
        }
    }  
    绕混了,调了俩小时。。。。
  • 相关阅读:
    Software Solutions CACHE COHERENCE AND THE MESI PROTOCOL
    CACHE COHERENCE AND THE MESI PROTOCOL
    Multiprocessor Operating System Design Considerations SYMMETRIC MULTIPROCESSORS
    Organization SYMMETRIC MULTIPROCESSORS
    PARALLEL PROCESSING
    1分钟内发送差评邮件
    Secure Digital
    SYMMETRIC MULTIPROCESSORS
    A Taxonomy of Parallel Processor Architectures
    parallelism
  • 原文地址:https://www.cnblogs.com/Duancf/p/12535612.html
Copyright © 2011-2022 走看看