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 public int sumNumbers(TreeNode root) { 12 // IMPORTANT: Please reset any member data you declared, as 13 // the same Solution instance will be reused for each test case. 14 ArrayList<Integer> result = new ArrayList<Integer>(); 15 if(root == null) 16 return 0; 17 dfs(result, 0, root); 18 int sum = 0; 19 for(int i:result) 20 sum += i; 21 return sum; 22 } 23 24 private void dfs(ArrayList<Integer> result, int now, TreeNode root){ 25 if(root.left == null && root.right == null){ 26 result.add(10*now+root.val); 27 return; 28 } 29 now = now * 10 + root.val; 30 if(root.left!=null) 31 dfs(result, now, root.left); 32 if(root.right!=null) 33 dfs(result, now, root.right); 34 } 35 }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步