左叶子之和
public int sumOfLeftLeaves(TreeNode root) {
? ? if (root == null)//root為空直接返回0
? ? ? ? return 0;
? ? //left存root的左子樹的左葉子之和,right存右子樹的左葉子之和
? ? //若root.left為左葉子,cur存root.left的值
? ? int left = 0, right = 0, cur = 0;
? ? //若root.left為左葉子
? ? if (root.left != null && root.left.left == null && root.left.right == null)
? ? ? ? cur = root.left.val;//存下這片左葉子的值
? ? else//否則繼續(xù)遞歸
? ? ? ? left = sumOfLeftLeaves(root.left);//左子樹值
? ? right = sumOfLeftLeaves(root.right);//右子樹值
? ? return left + right + cur;//返回左子樹值(若root.left非左葉子)+右子樹值+root.left值(若root.
? ? left為左葉子)
}
作者:FlyChenKai
鏈接:https://leetcode-cn.com/problems/two-sum/solution/liang-chong-bu-tong-xing-shi-de-di-gui-jie-fa-by-f/
來源:力扣(LeetCode)
著作權歸作者所有。商業(yè)轉載請聯(lián)系作者獲得授權,非商業(yè)轉載請注明出處。
總結