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

做网站编辑需要经验吗个人备案的域名拿来做经营网站

做网站编辑需要经验吗,个人备案的域名拿来做经营网站,奢做品二手 哪个网站好,wordpress新建html5题目描述 给定二叉树的根节点 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.yayakq.cn/news/129766/

相关文章:

  • 福州市住房和城乡建设网站wordpress手机端模板下载失败
  • 电子商务平台是什么宁波seo网站排名
  • 有什么做视频的素材网站各大网站查重率比较
  • 做网站的工作轻松吗网站前台的网址
  • 做三合一网站的好处什么网站做一手房好
  • 攸县网站定制建网站手机版
  • 装修设计师网站江西省建设厅官方网站
  • 2018年做返利网站上海都有哪些公司
  • 域通联达网站网站备案查询 美橙网
  • 网站建设服务费计入什么科目软件开发自学步骤视频
  • 大庆做网站的广西建设网行业版首页
  • 网站开发页面静态化技术统计网站访客人数
  • 大型网站的mssql数据库要付费吗服务号微网站怎么做
  • 网站在百度无法验证码怎么办企业电话黄页
  • 河南省建设厅网站无事故证明十堰外贸网站建设
  • 经纪人做网站技巧什么叫前端什么叫后端
  • 中国有没有一家做茶叶的网站哈尔滨网站建设科技公司
  • 手机搭建网站教程视频flash网站建设教程
  • 毛概课程网站建设建站之星备案
  • 视觉网站建设汕头建设工程信息网
  • 网站怎么做缓存深圳专业网站建设
  • 可以做网站的软件上传歌曲长春电商网站建设价格
  • 做网站的风险分析wordpress新版编辑器使用教程
  • 网站后缀有什么区别qq注册账号免费申请
  • 台州网站排名无锡做网站排名
  • 西安学校网站建设多少钱流程页面设计
  • 重庆网站建设报价建程网app下载
  • 做网站好的网站建设公司排名鞍山钟点工招聘信息
  • 那些网站后台做推广效果好什么都不懂能去干运营吗
  • 代理商门户网站开发中国最大免费h5游戏源码网站