zoukankan      html  css  js  c++  java
  • [leedcode 129] Sum Root to Leaf Numbers

    Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number.

    An example is the root-to-leaf path 1->2->3 which represents the number 123.

    Find the total sum of all root-to-leaf numbers.

    For example,

        1
       / 
      2   3
    

    The root-to-leaf path 1->2 represents the number 12.
    The root-to-leaf path 1->3 represents the number 13.

    Return the sum = 12 + 13 = 25.

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    public class Solution {
        //从根节点到叶子节点的路径代表一个数值,找出所有的这些数值然后累加得到一个和。DFS
        //本题主要注意getRes函数的参数,path代表到达node节点时,路径上已经存在的和!
        //本题注意题意:只有到达叶子节点(left=right=null)才能够将结果保存到res,所以注意递归结束条件
        int res;
        public int sumNumbers(TreeNode root) {
            getRes(root,0);
            return res;
            
        }
        public void getRes(TreeNode node,int path){//注意path参数含义!
            if(node==null) return;
            int temp=path*10+node.val;
            if(node.left==null&&node.right==null){
                res+=temp;
                return;
            }
            getRes(node.left,temp);
            getRes(node.right,temp);
            
        }
    }
  • 相关阅读:
    Codeforces_462_B
    Codeforces_460_B
    Codeforces_456_A
    2016.11.27
    Buy the Ticket{HDU1133}
    高精度模板
    盐水的故事[HDU1408]
    测试你是否和LTC水平一样高[HDU1407]
    完数[HDU1406]
    Air Raid[HDU1151]
  • 原文地址:https://www.cnblogs.com/qiaomu/p/4674950.html
Copyright © 2011-2022 走看看