鱼C论坛

 找回密码
 立即注册
查看: 2175|回复: 1

[技术交流] 404_左叶子节点求和

[复制链接]
发表于 2019-6-13 16:39:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
/*
计算给定二叉树的所有左叶子之和。
示例:
    3
   / \
  9  20
    /  \
   15   7
在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24
*/

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */

/*
    flag = 0 ;起始根节点
    flag = 1 ;是其父节点的左孩子
    flag = 2 ;是其父节点的有孩子
*/

int left_sum = 0;
void PreOrder(struct TreeNode* treenode,int flag )
{
    if(treenode == NULL)
    {
        return ;
    }
    
    if(( treenode->left == NULL)&&(treenode->right == NULL)&&(flag == 1))
    {
        left_sum += treenode->val;
        return ;   
    }
    PreOrder(treenode->left,1);
    PreOrder(treenode->right,2);
    return ;
}

int sumOfLeftLeaves(struct TreeNode* root)
{
    left_sum = 0;
    PreOrder(root,0);
    return left_sum;
}

/*
令人感动.
102 / 102 个通过测试用例 状态:通过
执行用时:8 ms,提交时间:2 分钟之前
执行用时 :8 ms, 在所有C提交中击败了92.13% 的用户 内存消耗 :7.6 MB, 在所有C提交中击败了100.00%的用户 
*/
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-6-13 16:40:32 | 显示全部楼层
使用二叉树基本的先序遍历,找出所有的左叶子节点然后取其值相加~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-13 19:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表