404. 左叶子之和、513. 找树左下角的值

本文详细介绍了两种二叉树问题的解决方案:一是计算所有左叶子节点的和,通过迭代和递归两种方法实现;二是寻找二叉树最底层最左边的节点值,同样给出迭代和递归的解题思路。通过层序遍历和递归遍历,结合二叉树的特性,有效地解决了这两个问题。
摘要由CSDN通过智能技术生成

404. 左叶子之和

题目描述:给定二叉树的根节点 root ,返回所有左叶子之和。

解答:

法一:迭代法(层序遍历)

看到本题首先思考的是,如何确定是左叶子?叶子很好确定,左右子节点均为空即可,但是左叶子应该如何确定?

经过观察,如果将空节点也当作一个存在的节点,每一层的左节点在该层中序号数为2的倍数(0,2,4,8......)

因此可以采用层序遍历,将空节点也入队,视为一个节点,但是不进行处理,仅用于计数。遇到左右子节点均为空且对2求余为0的节点(即为左叶子)求和即可。

代码实现:

class Solution {
public:
    int sumOfLeftLeaves(TreeNode* root) {
        queue<TreeNode*>que;
        int sum = 0;
        //只有一个节点的树额外处理
        if (root->left == NULL && root->right == NULL) return
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>