129. 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.
1 | For example, |
题意:
给定一个二叉树只包含数字0-9,根节点到每个叶节点路径可以表示一个数。例如根节点到叶节点路径路1 -> 2 -> 3代表数字123。求所有路径组合成的数的总和。
思路:
方法一:
层序遍历的时候只要不到叶节点,就把本节点的值乘10加到左右孩子节点上,这样每遍历一层,和就会相加一层,当是叶节点时,从根节点到本叶节点的数字也就求出来了,加到总和sum中,按队列,广度优先遍历,非递归实现。
1 | class Solution { |
方法二:
递归实现,节点可能出现的情况:
(1)左孩子或者右孩子两个都为NULL(叶节点),此时递归返回。
(2)左孩子或者右孩子某一个为NULL,此时继续推进下一层调用,只是在下一层中,会发现有一个为NULL节点,走到NULL节点当然应该返回了。
(3)左孩子或者右孩子都不为NULL,此时继续推进下一层的调用。
1 | class Solution { |