leetcode 872. 叶子相似的树(dfs)

请考虑一棵二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。

举个例子,如上图所示,给定一棵叶值序列为 (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,null,null,null,null,null,9,8]
输出:true
示例 2:

输入:root1 = [1], root2 = [1]
输出:true

解题思路

定义两个函数,一个是用来查找并且记录第一颗二叉树叶子节点的。第二个函数是用来查找第二颗二叉树叶子节点,并且验证这颗二叉树的叶子节点是否与第一颗的叶子节点序列相同

代码

/*** Definition for a binary tree node.* type TreeNode struct {*     Val int*     Left *TreeNode*     Right *TreeNode* }*/
func leafSimilar(root1 *TreeNode, root2 *TreeNode) bool {root := make([]int,0)var leadfs func(root1 *TreeNode)leadfs= func(root1 *TreeNode) {if root1.Left==nil&&root1.Right==nil{root=append(root,root1.Val)return}if root1.Left!=nil{leadfs(root1.Left)}if root1.Right!=nil{leadfs(root1.Right)}}leadfs(root1)i:=0flag:=truevar check func(root1 *TreeNode)check= func(root1 *TreeNode) {if root1.Left==nil&&root1.Right==nil{if i<len(root)&&root[i]!=root1.Val{flag=false}i++return}if root1.Left!=nil{check(root1.Left)}if root1.Right!=nil{check(root1.Right)}}check(root2)if i!=len(root){return false}return flag}

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

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

相关文章

探索感染了COVID-19的动物的数据

数据 (The data) With the number of cases steadily rising day by day, COVID-19 has been pretty much in the headlines of every newspaper known to man. Despite the massive amount of attention, a topic that has remained mostly untouched (some exceptions being …

Facebook哭晕在厕所,调查显示用VR体验社交的用户仅为19%

美国娱乐软件协会ESA调查显示&#xff0c;有74%的用户使用VR玩游戏&#xff0c;而仅有19%的用户会用VR进行社交。 当我们说到VR社交&#xff0c;必然离不开Facebook。在刚刚结束的F8大会上&#xff0c;小扎展示了VR社交平台Facebook Spaces测试版&#xff0c;巧的是此前也有好…

网页自动刷新

eg1&#xff1a;<meta http-equiv”refresh” content”4” /> 间隔4秒网页自动刷新 eg2&#xff1a;<meta http-equiv”refresh” content”8;http://www.baidu.com” /> 等待8秒自动跳转到百度页面转载于:https://www.cnblogs.com/zwtqf/p/7667774.html

解决Javascript疲劳的方法-以及其他所有疲劳

Learn your fundamentals, and never worry again. 了解您的基础知识&#xff0c;再也不用担心。 新工具让我担心 (New Tools Worry Me) When JavaScripts shiny tool of the day comes out, I sometimes overreact. 当JavaScript一天一度的闪亮工具问世时&#xff0c;我有时R…

Java 8 的List<V> 转成 Map<K, V>

问题&#xff1a; Java 8 的List 转成 Map<K, V> 我想要使用Java 8的streams和lambdas转换一个 List 对象为 Map 下面是我在Java 7里面的写法 private Map<String, Choice> nameMap(List<Choice> choices) {final Map<String, Choice> hashMap new…

已知两点坐标拾取怎么操作_已知的操作员学习-第4部分

已知两点坐标拾取怎么操作有关深层学习的FAU讲义 (FAU LECTURE NOTES ON DEEP LEARNING) These are the lecture notes for FAU’s YouTube Lecture “Deep Learning”. This is a full transcript of the lecture video & matching slides. We hope, you enjoy this as mu…

北京供销大数据集团发布SinoBBD Cloud 一体化推动产业云发展

9月5日&#xff0c;第五届全球云计算大会在上海世博展览馆盛大开幕&#xff0c;国内外顶尖企业汇聚一堂&#xff0c;新一代云计算技术产品纷纷亮相。作为国内领先的互联网基础服务提供商&#xff0c;北京供销大数据集团(以下简称“SinoBBD”)受邀参加此次大会&#xff0c;并正式…

windows下有趣的小玩意

1.显示文件和隐藏文件。在当前目录下shift右键 选择cmd命令 运行显示文件: attrib -s -h 文件名 隐藏文件: attrib -s h 文件名 2.查看电脑支持的最大内存 在cmd下运行wmic memphysical get maxcapacity所得结果单位mb 所得/1024/1024 得到单位G 3.windowsR 输入…

rxjs angular_Angular RxJS深度

rxjs angularIn this tutorial, well learn to use the RxJS 6 library with Angular 6 or Angular 7. Well learn about:在本教程中&#xff0c;我们将学习将RxJS 6库与Angular 6或Angular 7结合使用。我们将了解&#xff1a; How to import the Observable class and the ot…

HashMap, LinkedHashMap 和 TreeMap的区别

HashMap, LinkedHashMap 和 TreeMap的区别 Java里面的HashMap, LinkedHashMap 和 TreeMap 有什么区别?我看不出以下3个key和value有什么不同的。Hashtables里面又是怎么样的呢&#xff1f; Map m1 new HashMap(); m1.put("map", "HashMap"); m1.put(&q…

“陪护机器人”研报:距离真正“陪护”还差那么一点

一款有“缺陷”的机器人&#xff0c;怎能做到真正的“陪护”&#xff1f; 近日&#xff0c;鼎盛智能发布了一款名为Ibotn的&#xff08;爱蹦&#xff09;幼儿陪伴机器人&#xff0c;核心看点就是通过人脸识别、场景识别等计算机视觉技术来实现机器人对儿童的陪护。不过&#xf…

neo-6m uno_Uno-统治所有人的平台

neo-6m unoFirst, we should start off with what Uno is and why you should care. 首先&#xff0c;我们应该从Uno是什么以及为什么要关心开始。 As stated on their website, Uno is "The only platform for building native mobile, desktop and WebAssembly apps wi…

【转】消息队列应用场景

一、消息队列概述 消息队列中间件是分布式系统中重要的组件&#xff0c;主要解决应用耦合&#xff0c;异步消息&#xff0c;流量削锋等问题。实现高性能&#xff0c;高可用&#xff0c;可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。 目前在生产环境&#xff0c;…

JDK和JRE区别是什么

问题&#xff1a;JDK和JRE区别是什么 他们的角色分别是什么&#xff1f;我们应该什么时候使用他们&#xff1f; 回答一 JRE是Java Runtime Environment&#xff08;Java运行时环境&#xff09;。它是一个包&#xff0c;集合了运行一个编译好的Java程序的一切必须的东西&…

树莓派新手入门教程

http://www.ruanyifeng.com/blog/2017/06/raspberry-pi-tutorial.html

lime 模型_使用LIME的糖尿病预测模型解释— OneZeroBlog

lime 模型Article outline文章大纲 Introduction 介绍 Data Background 资料背景 Aim of the article 本文的目的 Exploratory analysis 探索性分析 Training a Random Forest Model 训练随机森林模型 Global Importance 全球重要性 Local Importance 当地重要性 介绍 (Introd…

react 生命挂钩_如何在GraphQL API中使用React挂钩来管理状态

react 生命挂钩In this blog post, we are going to learn -在这篇博客中&#xff0c;我们将学习- What React hooks are 什么是React钩子 How to use hooks for state management 如何使用挂钩进行状态管理 Before we start working with hooks, let us take a brief moment …

Linux第三周作业

1.三个法宝 ①存储程序计算机工作模型&#xff0c;计算机系统最最基础性的逻辑结构&#xff1b; ②函数调用堆栈&#xff0c;堆栈完成了计算机的基本功能&#xff1a;函数的参数传递机制和局部变量存取 &#xff1b; ③中断&#xff0c;多道程序操作系统的基点&#xff0c;没有…

什么时候使用静态方法

问题&#xff1a;什么时候使用静态方法 I am wondering when to use static methods? Say if I have a class with a few getters and setters, a method or two, and I want those methods only to be invokable on an instance object of the class. Does this mean I shou…

RESTful API浅谈

2019独角兽企业重金招聘Python工程师标准>>> 上半年时候&#xff0c;部门有组织的讨论了一下实践微服务的技术话题&#xff0c;主要内容是SOA服务和微服务各自的优势和难点&#xff0c;其中有提到关于RESTful API设计方法。 正好最近在深入的学习HTTP协议&#xff0…