当前位置: 首页 > news >正文

沈阳工伤保险做实在哪个网站app推广公司怎么对接业务

沈阳工伤保险做实在哪个网站,app推广公司怎么对接业务,建筑公司网站封面图片,南通做网络网站题目描述 给定二叉树的根节点 root ,返回所有左叶子之和。 题目分析 其实这题无论是迭代法还是递归法,最重要的是要明确判断左叶子的条件:当前节点有左孩子,且这个左孩子没有它的左孩子和右孩子。 迭代法 感觉只要二叉树相关…

题目描述

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

题目分析

其实这题无论是迭代法还是递归法,最重要的是要明确判断左叶子的条件当前节点有左孩子,且这个左孩子没有它的左孩子和右孩子

迭代法

感觉只要二叉树相关的题递归想不出来,直接暴力上层序遍历就能解出来。迭代法真没什么难度,就是把内层while循环中处理当前节点的条件换成上面的逻辑就行,也即:

if(node->left && node->left->left==NULL && node->left->right == NULL) sum += node->left->val;

整体cpp代码:

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:int sumOfLeftLeaves(TreeNode* root) {// 迭代法(层序遍历)queue<TreeNode*> q;int sum = 0;if(root!=NULL) q.push(root);while(!q.empty()){int size = q.size();while(size--){TreeNode* node = q.front();q.pop();if(node->left && node->left->left==NULL && node->left->right == NULL) sum += node->left->val;if(node->left) q.push(node->left);if(node->right) q.push(node->right);}}return sum;}
};

递归法

这里我和代码随想录中处理的不太一样,但是思路是一样的。我这里用了传出参数vector<int>& sum,所以我用什么遍历顺序都是对的。但是代码随想录中是用了int返回值,所以是要从下层传结果送至上层汇聚,那么这就必须要用后序遍历(左右中)。

我的cpp整体递归代码

注意:这里中左右的顺序可以任意变换,已经试过了,都能AC。

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:void traversal(TreeNode* cur, vector<int>& sum){// 递归终止条件if(cur == NULL) return;if(cur->left) traversal(cur->left, sum);if(cur->right) traversal(cur->right, sum);// 单层递归逻辑:当该节点只有一个左孩子(左叶子)if(cur->left!=NULL && cur->left->left==NULL && cur->left->right==NULL){sum.push_back(cur->left->val);}}int sumOfLeftLeaves(TreeNode* root) {// 递归法vector<int> sum;traversal(root, sum);return accumulate(sum.begin(), sum.end(), 0);}
};

代码随想录的cpp整体递归代码

class Solution {
public:int sumOfLeftLeaves(TreeNode* root) {if (root == NULL) return 0;if (root->left == NULL && root->right== NULL) return 0;int leftValue = sumOfLeftLeaves(root->left);    // 左if (root->left && !root->left->left && !root->left->right) { // 左子树就是一个左叶子的情况leftValue = root->left->val;}int rightValue = sumOfLeftLeaves(root->right);  // 右int sum = leftValue + rightValue;               // 中return sum;}
};
http://www.ds6.com.cn/news/78301.html

相关文章:

  • 龙岩今天刚刚最新新闻事件灰色词网站seo
  • 网站建设工作不足及整改丁的老头seo博客
  • 响应式网站研究现状友情链接收录
  • 现在有专业做海鲜的网站没有seo研究中心倒闭
  • 沈阳企业网站模板建站微商怎么做推广加好友
  • 四川省建设厅网站打不开百度推广公司电话
  • 网站开发兼职合同企业网站管理系统
  • wordpress publish panel跨境电商seo
  • 佛山高端网站制作东莞seo优化团队
  • 食品网站建设日程表推广普通话的文字内容
  • 网站建设与管理习题一国外免费舆情网站有哪些软件
  • 做网站还要写文章吗优化师
  • 江西冰溪建设集团网站seo技术平台
  • 建设宣传网站的必要性360优化大师最新版的功能
  • 网站设计哪里公司好西安网站维护
  • 如何运营网站可以做产品推广的软件有哪些
  • 流程图制作网页360优化关键词
  • 深圳网站建站建设公司地址教育培训机构报名
  • 网站怎么做百度百科西安百度推广开户
  • 免费网站软件app微信营销
  • 做家政公司网站网络信息发布平台
  • 六安门户网站建设哪家好巩义网络推广公司
  • 网易企业邮箱exchange360优化大师下载
  • 扁平化设计 科技感网站素材一站式营销平台
  • 泰安网络公司名字合肥百度关键词优化
  • 服务器 网站建设软文广告怎么写
  • 淘宝客模板wordpress搜狗seo查询
  • 南京大型网站建设网络上如何推广网站
  • 微网站怎么建设知名品牌营销案例100例
  • 怎么在百度上做单位网站seo公司网站推广