leetcode(88).404. Sum of Left Leaves
来源:互联网 发布:复旦物理系 知乎 编辑:程序博客网 时间:2024/05/11 21:14
题意:
给定一棵二叉树,返回所有左叶子值的和。
初步分析:
递归:除了节点以外还需要传递和的信息,后来还发现还需要传递判断是不是左结点的信息。
/** * 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) { return sumOfLeftTreeNodes(0, root, false); } public int sumOfLeftTreeNodes(int sum, TreeNode root,boolean left){ if(root==null) return sum; if(root.left==null && root.right==null && left) //是左叶子的处理 return sum + root.val; else //不是左叶子就是左子树加右子树加已经有的 return sum + sumOfLeftTreeNodes(sum, root.left, true) + sumOfLeftTreeNodes(sum, root.right, false); }}
左子树可以直接判断,sum也可以在函数内定义和使用。所以,也可以直接递归sumOfLeftLeaves
/** * 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 sum = 0; if(root.left!=null && root.left.left == null && root.left.right == null) //左叶子结点 { sum = root.left.val; } return sum + sumOfLeftLeaves(root.right) + sumOfLeftLeaves(root.left); //递归表达式 }}
这一段是讨论区的代码,挺喜欢这种风格
public int sumOfLeftLeaves(TreeNode root) { if (root == null) return 0; int sum = 0; if (root.left != null && root.left.left == null && root.left.right == null) sum += root.left.val; sum += sumOfLeftLeaves(root.left); sum += sumOfLeftLeaves(root.right); return sum;}
0 0
- leetcode(88).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】 404. Sum of Left Leaves
- leetcode 404. Sum of Left Leaves
- [Leetcode]404. Sum of Left Leaves
- uva129 Krypton Factor
- Linux系统下安装MegaCli64工具查看和管理raid卡
- 【JDK源码阅读14-util.concurrent.locks】锁-Lock接口
- codeforces 723e One-Way Reform (欧拉回路) || 欧拉回路路径输出模板
- LeetCode 165. Compare Version Numbers
- leetcode(88).404. Sum of Left Leaves
- 循环中的break和continue
- 构建高并发高可用的电商平台架构实践
- CodeForces-722A. Broken Clock(模拟)
- mysql 匹配特殊字符
- SQL SERVER 比较两个数据库中表和字段的差异
- Zookeeper安装部署
- lintcode,落单的数
- Glib内存管理模块之magazine layer