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

    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.

    算法思路:

    DFS。

    代码如下:

     1 /**
     2  * Definition for binary tree
     3  * public class TreeNode {
     4  *     int val;
     5  *     TreeNode left;
     6  *     TreeNode right;
     7  *     TreeNode(int x) { val = x; }
     8  * }
     9  */
    10 public class Solution {
    11     int res = 0;
    12     public int sumNumbers(TreeNode root){
    13         if(root == null) return res;
    14         dfs(root,0);
    15         return res;
    16     }
    17     private void dfs(TreeNode root,int num){
    18         if(root == null) return;
    19         if(root.left == null && root.right == null){
    20             res += 10 * num + root.val;
    21             return;
    22         }
    23         num = num * 10 + root.val;
    24         if(root.left != null){
    25             dfs(root.left,num);
    26         }
    27         if(root.right != null){
    28             dfs(root.right,num);
    29         }
    30     }
    31     
    32 }
  • 相关阅读:
    数据包发送
    linux 进程调度3
    linux 进程调度2
    linux 进程调度1
    进程间通信:信号
    fork vfork clone学习
    跳表
    【转】Linux内存管理综述
    如何优雅的写出链表代码
    This function or variable may be unsafe Consider using xxx instead
  • 原文地址:https://www.cnblogs.com/huntfor/p/3915914.html
Copyright © 2011-2022 走看看