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

成都专业的整站优化wordpress 多语言 站点

成都专业的整站优化,wordpress 多语言 站点,湘潭网站建设 r磐石网络,网站数据库配置题目描述 给定二叉树的根节点 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/979866/

相关文章:

  • 宿迁网站建设制作更换网站域名之后
  • 台州网站制作策划asp做的网站后台怎么进去
  • 购买帝国cms做网站代理网站整体运营
  • 建设实验中心网站如何制作一个游戏app
  • 可以做代发货源的网站陇西哪里能学做网站
  • 建设信息网的网站或平台登陆开发网站公司有哪些
  • 杭州网站建设app河南省住房和城乡建设厅电话
  • 天津建设协会网站重庆忠县网站建设公司
  • 网站不备案做优化镇江网页
  • 连云港网站设计惠州仲恺住房和城乡建设局网站
  • 唐山建设网站建站六安城市网
  • 网站以个人名义备案淄博刚刚发布紧急通知
  • 做的比较炫的网站深圳网站制作公司售后
  • 建设路街道办事处门户网站wordpress 反爬虫
  • 做融资的网站有哪些织梦购物网站整站源码
  • 江苏威达建设有限公司网站网上营销方式和方法
  • 微网站建设的第一步彩票网站模版
  • 404错误页面放在网站的哪里网站建设需要什么方案
  • 书店网站建设目标调研的方案最近的新闻大事
  • 潢川网站建设地方网站欣赏
  • 惠州网站搭建找谁重庆建设工程人力资源官网
  • 用ps做网站主页网站闭站保护
  • 做视频网站视频放在哪里wordpress改了固定链接出现404
  • wordpress站酷首页linux 什么做网站好
  • 内蒙古建设厅安全资料网站广告网站建设及推广
  • 开发一个网站多少钱军事最新消息今天
  • 网站建设需求流程图网络营销文案实例
  • 17Z一起做网站广州站北京公司网站如何制作
  • 旅行网站建设的规划书wordpress 检索文件
  • 湖州网站网站建设山东网站制作软件