[LeetCode]Sum Root to Leaf Numbers
来源:互联网 发布:广州数据库培训机构 编辑:程序博客网 时间:2024/06/11 03:18
题目描述
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
.
解题思路
思路很简单,利用栈来按层遍历二叉树,同时用另一个栈来记录每层节点对应的路径值,最终可以求得所有路径值的合。
代码
public static int sumNumbers(TreeNode root) {int result = 0;if (root == null)return result;if (root.left == null && root.right == null)return root.val;Stack<Integer> stackVal = new Stack<Integer>();Stack<TreeNode> stackNode = new Stack<TreeNode>();TreeNode tempNode;int tempVal;stackVal.add(root.val);stackNode.add(root);while (!stackNode.isEmpty()) {tempNode = stackNode.pop();tempVal = stackVal.pop();if (tempNode.left == null && tempNode.right == null) {result += tempVal;} else {if (tempNode.left != null) {stackNode.add(tempNode.left);stackVal.add(tempVal * 10 + tempNode.left.val);}if (tempNode.right != null) {stackNode.add(tempNode.right);stackVal.add(tempVal * 10 + tempNode.right.val);}}}return result;}public static class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) {val = x;}}
0 0
- leetcode 86: Sum Root to Leaf Numbers
- [LeetCode] Sum root to leaf numbers
- LeetCode : Sum Root to Leaf Numbers
- [leetcode] Sum Root to Leaf Numbers
- 【leetcode】Sum Root to Leaf Numbers
- LeetCode之sum root to leaf numbers
- leetcode:Sum Root to Leaf Numbers
- [LeetCode]Sum Root to Leaf Numbers
- [Leetcode]Sum Root to Leaf Numbers
- [leetcode]Sum Root to Leaf Numbers
- leetcode Sum Root to Leaf Numbers
- LeetCode-Sum Root to Leaf Numbers
- [leetcode] Sum Root to Leaf Numbers
- LeetCode 129: Sum Root to Leaf Numbers
- LeetCode - Sum Root to Leaf Numbers
- leetcode之Sum Root to Leaf Numbers
- LeetCode | Sum Root to Leaf Numbers
- LeetCode - Sum Root to Leaf Numbers
- 【android 使用两个surfaceview 在摄像机画面上绘图】
- execute、executeQuery和executeUpdate之间的区别
- 工厂模式
- UVALive 6489 Triangles LA 6489 Triangles
- SQL编程实例
- [LeetCode]Sum Root to Leaf Numbers
- spice 对比 vnc
- CSAPP
- HDU 3033 I love sneakers! (01背包+反分组背包)
- 黑马程序员 两小程序引发的思想
- JavaScript source map 的意义
- js:对象的创建(基于组合和动态原型)
- ZJU Least Common Multiple
- NEFU 655 图dp