[LeetCode] 404.Sum of Left Leaves

来源:互联网 发布:嫌疑人影评知乎 编辑:程序博客网 时间:2024/06/13 01:52

[LeetCode] 404.Sum of Left Leaves

  • 题目描述
  • 解题思路
  • 实验代码

题目描述

Find the sum of all left leaves in a given binary tree.

Example:
  3
  / \
 9 20
   / \
  15 7

There are two left leaves in the binary tree, with values 9 and 15 respectively. Return 24.

解题思路

这道题的要点是怎样找到要加的数对应的节点,搞清楚树的结构以及特点就能知道,左叶节点需要满足的条件是:1.非空;2.无子节点。想到这两个条件以后利用树中常用的递归就能解决这个问题。

实验代码

/** * Definition for a binary tree node. * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    int sum = 0;    void preorder(TreeNode* root) {        if (root == NULL)            return;        TreeNode* T = root->left;        if (T != NULL && T->left == NULL && T->right == NULL)            sum += T->val;        preorder(root->left);        preorder(root->right);    }    int sumOfLeftLeaves(TreeNode* root) {        preorder(root);        return sum;    }};
原创粉丝点击