[LeetCode]404. Sum of Left Leaves 树的典型题目
来源:互联网 发布:nginx转发配置 编辑:程序博客网 时间:2024/06/05 10:51
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.
/** * 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) { int sum=0; if(root==null) return 0; if(root.left!=null){ if(root.left.left==null && root.left.right==null) sum+=root.left.val; else sum+=sumOfLeftLeaves(root.left); } if(root.right!=null){ if(root.right.left!=null || root.right.right!=null) sum+=sumOfLeftLeaves(root.right); } return sum; }}
Iterative method. Here for each node in the tree we check whether its left child is a leaf. If it is true, we add its value to answer, otherwise add left child to the stack to process it later. For right child we add it to stack only if it is not a leaf.
/** * 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) { if(root==null) return 0; int res=0; Stack<TreeNode> stack = new Stack<>(); stack.push(root); while(!stack.isEmpty()){ TreeNode node = stack.pop(); if(node.left!=null){ if(node.left.left==null && node.left.right==null) res+=node.left.val; else stack.push(node.left); } if(node.right!=null) if(node.right.left!=null || node.right.right!=null) stack.push(node.right); } return res; }}
阅读全文
0 0
- [LeetCode]404. Sum of Left Leaves 树的典型题目
- LeetCode笔记:404. Sum of Left Leaves
- 【leetcode】404. Sum of Left Leaves【E】
- LeetCode—404. Sum of Left Leaves
- [LeetCode]404. Sum of Left Leaves
- Leetcode 404. Sum of Left Leaves
- LeetCode 404. Sum of Left Leaves
- 404. Sum of Left Leaves - leetcode
- [LeetCode]--404. Sum of Left Leaves
- LeetCode 404. Sum of Left Leaves
- [leetcode]404. Sum of Left Leaves
- LeetCode-404. Sum of Left Leaves
- LeetCode 404. Sum of Left Leaves
- LeetCode 404. Sum of Left Leaves
- leetcode 404. Sum of Left Leaves
- leetcode(88).404. Sum of Left Leaves
- 【LeetCode】 404. Sum of Left Leaves
- leetcode 404. Sum of Left Leaves
- [jzoj5236]【NOIP2017模拟8.7A组】利普希茨
- [双连通分量]LA5135 Mining your own business
- [HDU 5354] Bipartite Graph
- Hadoop学习(一)
- D
- [LeetCode]404. Sum of Left Leaves 树的典型题目
- POJ1789 Truck History
- 笔记11 《C++ 大学教程》
- 详解linux下编译安装配置php5.6.30过程
- Linux学习笔记01:文件管理
- 慕课网学习Java入门第二季笔记
- 二叉树的基本操作 C++
- E
- 线性筛+区间枚举