leetcode 129. Sum Root to Leaf Numbers ----- java

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 {
    public int sumNumbers(TreeNode root) {
        if( root == null )
            return 0;
        int result = 0;
        Queue queue = new LinkedList<TreeNode>();
        queue.add(root);

        while( !queue.isEmpty() ){

            int size = queue.size();
            for( int i = 0;i<size;i++){
                TreeNode node = (TreeNode) queue.poll();
                if( node.left != null ){
                    node.left.val = node.val*10+node.left.val;
                    queue.add(node.left);
                }
                if( node.right != null){
                    node.right.val = node.right.val+node.val*10;
                    queue.add(node.right);
                }
                if( node.left == null && node.right == null ){
                    result+=node.val;
                }
            }


        }

        return result;
        
    }
}
原文地址:https://www.cnblogs.com/xiaoba1203/p/6036197.html