代码随想三刷二叉树篇3

代码随想三刷二叉树篇3

  • 404. 左叶子之和
    • 题目
    • 代码
  • 513. 找树左下角的值
    • 题目
    • 代码
  • 112. 路径总和
    • 题目
    • 代码
  • 106. 从中序与后序遍历序列构造二叉树
    • 题目
    • 代码
  • 654. 最大二叉树
    • 题目
    • 代码

404. 左叶子之和

题目

链接

代码

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public int sumOfLeftLeaves(TreeNode root) {traverse(root,false);return sum;}int sum = 0;public void traverse(TreeNode root,boolean isLeft){if(root==null){return;}if(root.left==null&&root.right==null&&isLeft){sum+=root.val;return;}traverse(root.left,true);traverse(root.right,false);}
}

513. 找树左下角的值

题目

链接

代码

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public int findBottomLeftValue(TreeNode root) {Deque<TreeNode> queue = new LinkedList();queue.add(root);int result = root.val;while(!queue.isEmpty()){int size = queue.size();for(int i =0;i<size;i++){TreeNode temp = queue.removeFirst();if(i==0){result = temp.val;}if(temp.left!=null){queue.addLast(temp.left);}if(temp.right!=null){queue.addLast(temp.right);}}}return result;}
}

112. 路径总和

题目

链接

代码

/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val = val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val = val;* this.left = left;* this.right = right;* }* }*/
class Solution {public boolean hasPathSum(TreeNode root, int targetSum) {if (root == null) {return false;}sum += root.val;traverse(root, targetSum);return isHas;}boolean isHas = false;int sum = 0;public void traverse(TreeNode root, int targetSum) {if (isHas) {return;}if (root == null) {return;}if (root.left == null && root.right == null) {if (targetSum == sum) {isHas = true;return;}}if (root.left != null) {sum += root.left.val;traverse(root.left, targetSum);sum -= root.left.val;}if (root.right != null) {sum += root.right.val;traverse(root.right, targetSum);sum -= root.right.val;}}
}

106. 从中序与后序遍历序列构造二叉树

题目

链接

代码

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public TreeNode buildTree(int[] inorder, int[] postorder) {if(inorder==null||inorder.length==0){return null;}if(inorder.length==1){return new TreeNode(inorder[0]);}int val = postorder[postorder.length-1];int index = 0;for(index = 0;index<inorder.length;index++){if(inorder[index]==val){break;}}int[] leftinorder = Arrays.copyOfRange(inorder,0,index);int[] rightinorder = Arrays.copyOfRange(inorder,index+1,inorder.length);int[] leftpostorder = Arrays.copyOfRange(postorder,0,index);int[] rightpostorder = Arrays.copyOfRange(postorder,index,inorder.length-1);TreeNode left = buildTree(leftinorder,leftpostorder);TreeNode right = buildTree(rightinorder,rightpostorder);TreeNode root =new TreeNode(val);root.left = left;root.right = right;return root;}   
}

654. 最大二叉树

题目

链接

代码

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public TreeNode constructMaximumBinaryTree(int[] nums) {return traversal(nums);}public TreeNode traversal(int [] nums){if(nums==null||nums.length==0){return null;}//叶子if(nums.length==1){return  new TreeNode(nums[0]);}//找最大的int max = nums[0];int maxIndex = 0;for(int i=1;i<nums.length;i++){if(max<nums[i]){max = nums[i];maxIndex = i;}}TreeNode t = new TreeNode(max);//分割左右int[] leftNums = Arrays.copyOfRange(nums,0,maxIndex);int[] rightNums = Arrays.copyOfRange(nums,maxIndex+1,nums.length);t.left = traversal(leftNums);t.right = traversal(rightNums);return t;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/30932.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

构建高效的大数据量延迟任务调度平台

目录 引言系统需求分析系统架构设计 总体架构任务调度模块任务存储模块任务执行模块 任务调度算法 时间轮算法优先级队列分布式锁 数据存储方案 关系型数据库NoSQL数据库混合存储方案 容错和高可用性 主从复制数据备份与恢复故障转移 性能优化 水平扩展缓存机制异步处理 监控与…

【代码随想录】【算法训练营】【第44天】 [322]零钱兑换 [279]完全平方数 [139]单词拆分

前言 思路及算法思维&#xff0c;指路 代码随想录。 题目来自 LeetCode。 day 44&#xff0c;周四&#xff0c;坚持不住了~ 题目详情 [322] 零钱兑换 题目描述 322 零钱兑换 解题思路 前提&#xff1a; 思路&#xff1a; 重点&#xff1a; 代码实现 C语言 [279] 完全…

Flink集群架构

在上一章节我们对flink有了一个基本的了解。从它的应用的场景以及它的一些基本的一些核心的一些概念。从本章节开始&#xff0c;我们对flink从它的一个集群的一个架构以及它的一个部署模式着手&#xff0c;去了解flink如何去部署在不同的这样的一个集群的一些资源管理器上面&am…

day64 图论 图论理论基础 深搜 广搜 98. 所有可达路径

图论理论基础 图的种类 整体上一般分为 有向图 和 无向图。 度 无向图中有几条边连接该节点&#xff0c;该节点就有几度。 在有向图中&#xff0c;每个节点有出度和入度。 出度&#xff1a;从该节点出发的边的个数。 入度&#xff1a;指向该节点边的个数。 连通性 在图…

(创新)基于VMD-CNN-BiLSTM的电力负荷预测—代码+数据

目录 一、主要内容&#xff1a; 二、运行效果&#xff1a; 三、VMD-BiLSTM负荷预测理论&#xff1a; 四、代码数据下载&#xff1a; 一、主要内容&#xff1a; 本代码结合变分模态分解( Variational Mode Decomposition&#xff0c;VMD) 和卷积神经网络(Convolutional neu…

视频去水印,视频去水印软件

有时候我们在网上下载了一些喜欢的视频&#xff0c;但是却发现上面有水印&#xff0c;影响观看体验。今天我就来教大家一个轻松去除视频水印的简单的方法。 一、使用专业视频编辑软件去水印 市面上有很多专业的视频编辑软件&#xff0c;如Adobe Premiere Pro&#xff0c;它们都…

代码大模型揭秘:从下载到推理,全流程体验StarCoder

选择模型 模型榜单 大模型的发展日新月异&#xff0c;性能强劲的大模型不断涌现&#xff0c;可以实时关注开源大模型的榜单&#xff0c;选择合适自己的大模型 开源大模型榜单 开源代码大模型榜单 模型网站 目前主流的下载模型的网站就是 huggingface 全球社区&#xff0c;…

react实现窗口悬浮框,可拖拽、折叠、滚动

1、效果如下 2、如下两个文件不需要修改 drag.js import React from "react"; import PropTypes from "prop-types";export default class DragM extends React.Component {static propTypes {children: PropTypes.element.isRequired};static defaultP…

Linux系统之配置Nginx反向代理

Linux系统之配置Nginx反向代理 一、Nginx介绍1.1 Nginx简介1.2 Nginx反向代理二、本次实践介绍2.1 本次实践简介2.2 本次实践环境规划三、基于端口配置反向代理3.1 安装nginx软件3.2 备份配置文件3.3 编辑nginx配置文件3.4 启动Nginx服务3.5 检查Nginx服务状态3.6 设置防火墙和…

Python - 各种计算器合集【附源码】

计算器合集 一&#xff1a;极简版计算器二&#xff1a;简易版计算器三&#xff1a;不简易的计算器四&#xff1a;还可以计算器 一&#xff1a;极简版计算器 运行效果&#xff1a; import tkinter as tk import tkinter.messagebox win tk.Tk() win.title("计算器")…

【AIOps】基于AIOps的故障根因分析及定位

基础知识&#xff1a; 基于机器学习的异常检测与分析技术 传统做法&#xff1a; 复杂运维场景下&#xff0c;如何实现分钟级的故障根因定位 结合大模型&#xff1a; 基于大语言模型的云故障根因分析&#xff5c;顶会EuroSys24论文

Faiss:选择合适的索引Index

向量相似性搜索彻底改变了搜索领域。它允许我们高效地检索从GIF到文章等各种媒体&#xff0c;即使在处理十亿级别数据集时&#xff0c;也能在亚秒级时间内提供令人印象深刻的准确性。 然而&#xff0c;这种灵活性也带来了一个问题&#xff1a;如何知道哪种索引大小最适合我们的…

EE trade:现货黄金交易时间与操作技巧

现货黄金作为当今最为热门的投资方式之一&#xff0c;其独特的交易机制和高收益潜力吸引了大量投资者的关注。对于新手投资者而言&#xff0c;可能对于现货黄金交易完全是一片空白。因此&#xff0c;了解现货黄金的交易时间和操作技巧、掌握基本投资知识&#xff0c;是至关重要…

AI在创造与毁灭之间摇摆:音乐产业的机遇与挑战并存

AI到底在创造还是毁掉音乐&#xff1f; 最近一个月&#xff0c;轮番上线的音乐大模型&#xff0c;一举将素人生产音乐的门槛降到了最低&#xff0c;并掀起了音乐圈会不会被AI彻底颠覆的讨论。短暂的兴奋后&#xff0c;AI产品的版权归属于谁&#xff0c;创意产业要如何在AI的阴…

opencv的RGB 颜色表

RGB&#xff08;255,23,140&#xff09;是光的三原色&#xff0c;也即是红绿蓝Red&#xff0c;Green&#xff0c;Blue&#xff0c;它们的最大值是255&#xff0c;相当于100%。 白色&#xff1a;rgb(255,255,255) 黑色&#xff1a;rgb(0,0,0) 红色&#xff1a;rgb(255,0,0) …

python数据分析:修改数据

在 Python 中进行数据分析时&#xff0c;通常使用 pandas 库来处理和修改数据。以下是一个完整的示例&#xff0c;展示如何使用 pandas 库读取数据、修改数据并保存结果。 1. 安装并导入必要的库 首先&#xff0c;确保你已经安装了 pandas 库。如果没有安装&#xff0c;可以使…

【Spine学习13】之 制作受击动画思路总结(叠加颜色特效发光效果)

绑定IK腿部骨骼容易出错的一种方式&#xff0c; 要记住 如果按照错误方式绑定骨骼&#xff0c;可能移动IK约束的时候会另腿部的弯曲方向相反了 &#xff1a; 上节分享了攻击动作的制作思路总结&#xff0c; 这节总结受击思路。 第一步&#xff1a; 创建一个新的动画&#xff1…

【数学建模】——【新手小白到国奖选手】——【学习路线】

专栏&#xff1a;数学建模学习笔记 目录 ​编辑 第一阶段&#xff1a;基础知识和工具 1.Python基础 1.学习内容 1.基本语法 2.函数和模块 3.面向对象编程 4.文件操作 2.推荐资源 书籍&#xff1a; 在线课程&#xff1a; 在线教程&#xff1a; 2.数学基础 1.学习内…

热门开源项目

当谈到热门的开源项目时&#xff0c;选择总是取决于你的兴趣和技术栈。以下是一些广受欢迎和活跃的开源项目&#xff0c;涵盖了不同的领域和技术&#xff1a; React: GitHub 地址: GitHub - facebook/react: The library for web and native user interfaces.描述: 由 Facebook…

智能猫砂盆是养猫必需品吗?三个好用品牌让你实现铲屎自动化!

随着现代社会的快节奏和压力增大&#xff0c;许多人开始因工作、旅行或其他紧急情况需要暂时离家&#xff0c;但这样的话&#xff0c;大家又要如何确保猫咪的猫砂盆在无人照料的情况下依旧保持清洁&#xff1f;尤其在炎热的季节&#xff0c;猫砂盆若长时间未得到清理&#xff0…