【简单】872. 叶子相似的树

【LeetCode】第872题——叶子相似的树(难度:简单) 【LeetCode】第872题——叶子相似的树(难度:简单)题目描述解题思路代码详解注意点 题目描述 请考虑一棵二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。 举个例子,如上图所示,给定一棵叶值序列为 (6, 7, 4, 9, 8) 的树。 如果有两棵二叉树的叶值序列是相同,那么我们就认为它们是 叶相似 的。 如果给定的两个根结点分别为 root1 和 root2 的树是叶相似的,则返回 true;否则返回 false 。 示例 1: 输入:root1 = [3,5,1, 阅读详情

【题目】
请考虑一颗二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列。
在这里插入图片描述举个例子,如上图所示,给定一颗叶值序列为 (6, 7, 4, 9, 8) 的树。如果有两颗二叉树的叶值序列是相同,那么我们就认为它们是 叶相似的。如果给定的两个头结点分别为 root1 和 root2 的树是叶相似的,则返回 true;否则返回 false。
来源:leetcode
链接:https://leetcode-cn.com/problems/leaf-similar-trees/
【提示】
给定的两颗树可能会有 1 到 200 个结点
给定的两颗树上的值介于 0 到 200 之间
【代码】
执行用时 :0 ms, 在所有 C++ 提交中击败了100.00% 的用户
内存消耗 :11.3 MB, 在所有 C++ 提交中击败了100.00%的用户

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
private:
    stack<TreeNode*> s;
public:
    void deal(TreeNode*node1,vector<int> &v){
        s.push(node1);
        while(!s.empty()){
            node1=s.top();
            s.pop();
            if(node1->left==NULL&&node1->right==NULL)
                v.push_back(node1->val);
            if(node1->left)
                s.push(node1->left);
            if(node1->right)
                s.push(node1->right);
        }
    }
    bool leafSimilar(TreeNode* root1, TreeNode* root2) {
        vector<int> v,v2;
        deal(root1,v);
        deal(root2,v2);
        for(int i=0;i<v.size();i++)
            if(v[i]!=v2[i]||v.size()!=v2.size())
                return false;
        return true;
    }
};

【繁琐】

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    bool leafSimilar(TreeNode* root1, TreeNode* root2) {
        vector<int> v;
        stack<TreeNode*> s;
        TreeNode* node1=root1;
        s.push(node1);
        while(!s.empty()){
            node1=s.top();
            s.pop();
            if(node1->left==NULL&&node1->right==NULL)
                v.push_back(node1->val);
            if(node1->left)
                s.push(node1->left);
            if(node1->right)
                s.push(node1->right);
        }
        node1=root2;
        int cnt=0;
        s.push(node1);
        while(!s.empty()){
            node1=s.top();
            s.pop();
            if(node1->left==NULL&&node1->right==NULL)
                if(v[cnt++]!=node1->val)
                    return false;
            if(node1->left)
                s.push(node1->left);
            if(node1->right)
                s.push(node1->right);
        }
        return true;
    }
};
Leetcode 872:叶子相似的树(超详细的解法!!!) 请考虑一颗二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。 举个例子,如上图所示,给定一颗叶值序列为 (6, 7, 4, 9, 8) 的树。 如果有两颗二叉树的叶值序列是相同,那么我们就认为它们是 叶相似 的。 如果给定的两个头结点分别为 root1 和 root2 的树是叶相似的,则返回 true;否则返回 false 。 提示: 给定的两颗树可能会有 ... 阅读详情

相关推荐

Bresenham画圆算法在嵌入式屏幕(如ILI9806G)上的实战:从C代码到单片机显示

本文详细介绍了Bresenham画圆算法在嵌入式屏幕(如ILI9806G)上的高效实现与优化方法。通过整数化改造和针对STM32等微控制器的特殊优化,显著提升了图形显示性能,适用于资源受限的嵌入式系统开发。文章还分享了实心圆与空心圆的实现策略及实战经验。

weixin_33712987的博客 392

LeetCode 872. 叶子相似的树

题目: 请考虑一颗二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。 举个例子,如上图所示,给定一颗叶值序列为 (6, 7, 4, 9, 8) 的树。 如果有两颗二叉树的叶值序列是相同,那么我们就认为它们是 叶相似 的。 如果给定的两个头结点分别为 root1 和 root2 的树是叶相似的,则返回 true;否则返回 false 。 提示: 给定的两颗树可能会有 1 到...

qq_44000076的博客 172

一文梳理金融风控建模全流程(Python)

。借助A卡模型,银行或金融机构能够根据申请人的个人信息和历史数据,对其进行风险评估。这种评估能够帮助金融机构判断借款人是否具备偿还贷款的能力和意愿。

weixin_43420291的博客 4778

【二叉树】叶子相似的树

题目 请考虑一棵二叉树上所有的叶子 这些叶子的值按 从左到右 的顺序排列形成一个 叶值序列 如果有两棵二叉树的叶值序列是相同 那么我们就认为它们是 叶相似 的 如果给定的两个头结点分别为 root1 和 root2 的树 是叶相似的,则返回 true;否则返回 false

豪冷的博客 617

格拉姆角场(GAF)实战:用Python实现时间序列图像化处理

本文深入解析了格拉姆角场(GAF)技术,这是一种将一维时间序列转化为二维图像特征的方法,以便利用卷积神经网络(CNN)等图像模型进行深度分析。文章通过Python实战代码,详细演示了GASF和GADF两种核心转换的实现过程,并探讨了其在时序数据分类任务中的应用,为故障预警、金融模式识别等场景提供了强大的图像驱动分析视角。

weixin_29079671的博客 274

Dify沙箱权限配置实战:解决‘operation not permitted‘报错的完整指南

本文详细解析了Dify平台中常见的'operation not permitted'报错根源,即沙箱安全机制对系统调用的限制。通过实战步骤,指导用户定位并修改config.yaml配置文件,精准配置allowed_syscalls白名单以解决权限问题,涵盖从文件操作、进程控制到网络通信等关键系统调用的编号详解与配置示例,帮助用户在保障安全的前提下,顺利运行依赖特定库的代码工作流。

tech5的博客 1204

[E二叉树] lc872. 叶子相似的树(二叉树+dfs)

文章目录1. 题目来源2. 题目解析 1. 题目来源 链接:872. 叶子相似的树 2. 题目解析 dfs 前序遍历下,将两棵树的叶子节点单独存下来即可。 时间复杂度:O(n)O(n)O(n) 空间复杂度:O(n)O(n)O(n) dfs /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; *

Y-puyu 的博客 223

特征工程自动化(FeatureTools实战)

本项目模拟生成的医疗、金融和电商等领域的原始数据,适用于自动化特征工程的场景。主数据表(Entity Table):例如用户数据、交易数据、患者数据等。字段可能包括用户ID、年龄、性别、注册日期、消费金额、行为记录等。关联数据表(Related Tables):例如订单数据、点击记录、诊疗记录等。多个表之间通过外键建立关联。patient_id:患者IDage:年龄gender:性别:入院日期:出院日期diagnosis:诊断结果。

闲人编程的博客 1360

872. 叶子相似的树

题目描述 请考虑一棵二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。 举个栗子,如上图,给定一棵叶值序列为 (6, 7, 4, 9, 8) 的树。 若有两棵二叉树的叶值序列是相同的,那么我们就认为它们是 叶相似 的。 如果给定两个根结点分别为 root1 和 root2 的树是叶相似的,返回 true;否则需返回 false 。 样例 示例1: 输入:root1 = [3,5,1,6,2,9,8,null,null,7,4], root2 = [3,5,1,6,7,4,2,null

Another Day of Sun的博客 171

网络流量异常信息分析方法研究

本课题针对网络安全中网络流量异常的分析方法进行研究,提出一种基于机器学习和深度学习的异常检测算法。该算法采用卷积神经网络(CNN)和长短时记忆神经网络(LSTM)结合的方式,通过训练得到二分类模型,从而实现对网络流量异常的检测。随着互联网的飞速发展,网络攻击事件日益增多,网络安全问题成为了亟待解决的问题之一。常见的网络攻击手段包括 DDoS 攻击、SQL 注入、XSS 攻击等,这些攻击手段可能导致网络系统发生异常,给网络运维、数据安全带来极大的挑战。

肥晨开发的学习之路 1037

[网络安全提高篇] 一二〇.恶意软件动态分析经典沙箱Cape批量提取动态API特征

这是作者网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您喜欢,一起进步。前文详细介绍动态分析沙箱Cape的安装过程,其是一个开源的自动恶意软件分析系统,通过自动运行和分析恶意软件,全面分析和提取恶意软件的关键特征。然而,当样本数量增加时,单个样本分析会降低效率。这篇文章将讲解如何实现Cape沙箱的批量分析,通过调用Python脚本文件来实施批量处理,并将分析结果存储在指定位置,最后补充submit.py的参数及Python调用方式。基础性文章,希望对您有帮助!

杨秀璋的专栏 4124

leetcode 算法题872 (简单227) 叶子相似的树

leetcode 算法题872 (简单227) 叶子相似的树 题目介绍 请考虑一颗二叉树上所有的叶子, 这些叶子的值按从左到右的顺序排列形成一个 叶值序列 举个例子,如上图所示, 给定一颗叶值序列为 (6, 7, 4, 9, 8) 的树。 如果有两颗二叉树的叶值序列是相同, 那么我们就认为它们是 叶相似 的。 如果给定的两个头结点分别为 roo...

FYuu95100的博客 242

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【树-简单】872. 叶子相似的树

【题目】 请考虑一棵二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。 举个例子,如上图所示,给定一棵叶值序列为 (6, 7, 4, 9, 8) 的树。 如果有两棵二叉树的叶值序列是相同,那么我们就认为它们是 叶相似 的。 如果给定的两个根结点分别为 root1 和 root2 的树是叶相似的,则返回 true;否则返回 false 。 示例 1: 输入:root1 = [3,5,1,6,2,9,8,null,null,7,4], root2 = [3,5,1,6,7,4,2,nul

... 102

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【LeetCode】C++ :简单题 - 树 872. 叶子相似的树

872. 叶子相似的树 难度简单86 请考虑一棵二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个叶值序列。 举个例子,如上图所示,给定一棵叶值序列为(6, 7, 4, 9, 8)的树。 如果有两棵二叉树的叶值序列是相同,那么我们就认为它们是叶相似的。 如果给定的两个头结点分别为root1和root2的树是叶相似的,则返回true;否则返回false。 示例 1: 输入:root1 = [3,5,1,6,2,9,8,null,null,7,...

weixin_44566432的博客 171

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

LeetCode 872叶子相似的树-简单

请考虑一棵二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。 举个例子,如上图所示,给定一棵叶值序列为 (6, 7, 4, 9, 8) 的树。 如果有两棵二叉树的叶值序列是相同,那么我们就认为它们是 叶相似 的。 如果给定的两个头结点分别为 root1 和 root2 的树是叶相似的,则返回 true;否则返回 false 。 示例 1: 输入:root1 = [3,5,1,6,2,9,8,null,null,7,4], root2 = [3,5,1,6,7,4,2,null,n

m0_51955470的博客 227

【LeetCode刷题(简单程度)】872. 叶子相似的树

请考虑一颗二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。 举个例子,如上图所示,给定一颗叶值序列为 (6, 7, 4, 9, 8) 的树。 如果有两颗二叉树的叶值序列是相同,那么我们就认为它们是 叶相似 的。 如果给定的两个头结点分别为 root1 和 root2 的树是叶相似的,则返回 true;否则返回 false 。 提示: 给定的两颗树可能会有 1 到 200 个结点。 给定的两颗树上的值介于 0 到 200 之间。 来源:力扣(LeetCode) 链接:https:/

qq_33197518的博客 185

【leetcode】872. 叶子相似的树(leaf-similar-trees)(dfs)[简单]

链接 https://leetcode-cn.com/problems/leaf-similar-trees/ 耗时 解题:57 min 题解:3 min 题意 请考虑一棵二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。 举个例子,如上图所示,给定一棵叶值序列为 (6, 7, 4, 9, 8) 的树。 如果有两棵二叉树的叶值序列是相同,那么我们就认为它们是 叶相似 的。 如果给定的两个根结点分别为 root1 和 root2 的树是叶相似的,则返回 true;否则返回 false

Krone_的博客 259

leetcode872. 叶子相似的树(java)

输入:root1 = [3,5,1,6,2,9,8,null,null,7,4], root2 = [3,5,1,6,7,4,2,null,null,null,null,null,null,9,8]具体地,在深度优先搜索的过程中,我们总是先搜索当前节点的左子节点,再搜索当前节点的右子节点。举个例子,如上图所示,给定一棵叶值序列为 (6, 7, 4, 9, 8) 的树。输入:root1 = [1,2,3], root2 = [1,3,2]如果有两棵二叉树的叶值序列是相同,那么我们就认为它们是 叶相似 的。

SP_1024的博客 579

叶子相似的树

叶子相似的树 题目 叶子相似的树(力扣:872) 请考虑一颗二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个叶值序列 。 如果有两颗二叉树的叶值序列是相同,那么我们就认为它们是 叶相似 的。 如果给定的两个头结点分别为 root1 和 root2 的树是叶相似的,则返回 true;否则返回 false 。 代码实现 /** * 872. 叶子相似的树 * @param root1 * @param

卜大爷的博客 2万+

LeetCode-872 叶子相似的树

树搜索 LeetCode-872 叶子相似的树 题目链接:LeetCode-872 题目大意:比较两个二叉树的叶子是否完全相同 包括顺序 1,2,3和1,3,2也算不相同哦 解题思路:创建两个集合 存储两个二叉树的叶子 之后搜索树的叶子就行了 搜到叶子将权值存进集合 最后将两个集合的元素进行比较 代码块: /** * Definition for a binary tree node. * p...

鱼头的水题之路 203

leetcode872:叶子相似的树

本题只要是考察如何求取树的叶子节点,采用广度优先的思想,利用栈的方法去解决。

ch18328071580的博客 364

leetcode 872叶子相似的树

872. 叶子相似的树 请考虑一颗二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个叶值序列 。 举个例子,如上图所示,给定一颗叶值序列为(6, 7, 4, 9, 8)的树。 如果有两颗二叉树的叶值序列是相同,那么我们就认为它们是叶相似的。 如果给定的两个头结点分别为root1 和root2的树是叶相似的,则返回true;否则返回 false 。 # D...

fang156239305的博客 308

872.力扣LeetCode_叶子相似的树

本文比较了三种判断二叉树是否叶相似的方法的方法:1)基于栈的非递归中序遍历,通过比较叶子节点序列判断;2)Morris遍历利用线索化节点的动态右孩子状态实现精准叶子判定;3)递归中序遍历实现。三种方法均通过收集叶子节点序列后比较序列一致性进行判断,其中栈方法空间复杂度O(n),Morris方法优化为O(1),递归方法简洁但存在栈递归调用风险。核心思路都是通过中序遍历提取叶子序列,再比较序列是否完全一致。

2401_82472941的博客 1054

LeeCode872叶子相似的树

请考虑一棵二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个。举个例子,如上图所示,给定一棵叶值序列为的树。如果有两棵二叉树的叶值序列是相同,那么我们就认为它们是叶相似的。如果给定的两个根结点分别为root1和root2的树是叶相似的,则返回true;否则返回false。

2301_80195716的博客 666
上一篇: 【简单】1103. 分糖果 II
下一篇: 【简单】21. 合并两个有序链表
菜菜2022
博客等级 码龄9年 67粉丝 1033原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值