404. Sum of Left Leaves*
来源:互联网 发布:centos 7 32位下载 编辑:程序博客网 时间:2024/04/30 18:46
Find the sum of all left leaves in a given binary tree.
Example:
3 / \ 9 20 / \ 15 7There are two left leaves in the binary tree, with values 9 and 15 respectively. Return 24.My code:
非递归方法:
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public int sumOfLeftLeaves(TreeNode root) { Stack<TreeNode> stack = new Stack<>(); int sum =0; if (root==null) return sum; TreeNode cur = root; while(cur!=null||!stack.isEmpty()){ if(cur.right!=null) stack.push(cur.right); if (cur.left!=null){ if (cur.left.left==null && cur.left.right ==null){ sum += cur.left.val; } cur = cur.left; } else if (!stack.isEmpty()) cur = stack.pop(); else cur = null; } return sum; }}
递归方法:
public class Solution { public int sumOfLeftLeaves(TreeNode root) { if (root==null) return 0; int sum =0; if (root.left!=null){ if(root.left.left==null&& root.left.right==null) sum+=root.left.val; else sum += sumOfLeftLeaves(root.left); } sum+=sumOfLeftLeaves(root.right); return sum; }}
总结:非递归方法自己做的,递归方法不常用反而生疏了,看了答案。说明一个问题,多练习总是好的。
0 0
- 404. Sum of Left Leaves
- 404. Sum of Left Leaves
- 404. Sum of Left Leaves
- 404. Sum of Left Leaves
- 404. Sum of Left Leaves
- 404. Sum of Left Leaves
- 404. Sum of Left Leaves
- 404. Sum of Left Leaves
- 404. Sum of Left Leaves
- 404. Sum of Left Leaves*
- 404. Sum of Left Leaves
- 404. Sum of Left Leaves
- 404. Sum of Left Leaves
- 404. Sum of Left Leaves
- 404. Sum of Left Leaves
- 404. Sum of Left Leaves
- 404. Sum of Left Leaves
- 404. Sum of Left Leaves
- Spring Cache
- 两大数据库缓存系统实现对比
- Roman to Integer
- AJAX、XStream、JSON
- Java中为什么有的方法必须抛出异常,有的不用
- 404. Sum of Left Leaves*
- MongoDB 生态 - 客户端 Driver 支持
- lucene3.0 搜索结果排序+高亮展示
- UE4坑--打不开工程,进度一直卡在72%
- 快速排序
- Spring Session + Redis实现分布式Session共享
- 2016年12月20日学习总结----C语言关键字volatile
- 经典查询练手第一篇
- MongoDB 生态 - 官方命令行工具