/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { int ans=0;//最后的结果 public int sumNumbers(TreeNode root) { dfs(root,0); return ans; } public void dfs(TreeNode root,int sum) { if(root==null)return;//根节点为空,直接返回 int sum1=sum*10+root.val;//如果根节点不为空,则当前这个路径的代表的数字是sum*10+root.val if(root.left==null&&root.right==null)//假如到了叶子结点,说明当前路径代表的数字已经找到了,把数字加到最后的结果集合就好 { ans+=sum1; } dfs(root.left,sum1); dfs(root.right,sum1); } }