剑指 Offer II 049. 从根节点到叶节点的路径数字之和
难度中等给定一个二叉树的根节点 root
,树中每个节点都存放有一个 0
到 9
之间的数字。
每条从根节点到叶节点的路径都代表一个数字:
- 例如,从根节点到叶节点的路径
1 -> 2 -> 3
表示数字123
。
计算从根节点到叶节点生成的 所有数字之和 。
叶节点 是指没有子节点的节点。
1 /** 2 * Definition for a binary tree node. 3 * public class TreeNode { 4 * int val; 5 * TreeNode left; 6 * TreeNode right; 7 * TreeNode() {} 8 * TreeNode(int val) { this.val = val; } 9 * TreeNode(int val, TreeNode left, TreeNode right) { 10 * this.val = val; 11 * this.left = left; 12 * this.right = right; 13 * } 14 * } 15 */ 16 class Solution { 17 int ans=0; 18 int temp=0; 19 public int sumNumbers(TreeNode root) { 20 dfs(root); 21 return ans; 22 } 23 24 25 public void dfs(TreeNode root){ 26 temp=temp*10+root.val; 27 if (root.left==null&&root.right==null) { 28 ans+=temp; 29 temp=(temp-root.val)/10; 30 return; 31 } 32 if (root.left!=null) dfs(root.left); 33 if (root.right!=null) dfs(root.right); 34 temp=(temp-root.val)/10; 35 } 36 }
思路:dfs树,到叶子节点记录这条路的值。
标签:right,TreeNode,14,val,temp,二叉树,2022,root,节点 From: https://www.cnblogs.com/benbicao/p/16584944.html