文章目录

  • 1. 题目
  • 2. 解题

1. 题目

给定一个二叉树,我们称从根节点到任意叶节点的任意路径中的节点值所构成的序列为该二叉树的一个 “有效序列” 。
检查一个给定的序列是否是给定二叉树的一个 “有效序列” 。

我们以整数数组 arr 的形式给出这个序列。
从根节点到任意叶节点的任意路径中的节点值所构成的序列都是这个二叉树的 “有效序列” 。

示例 1:

输入:root = [0,1,0,0,1,0,null,null,1,0,0], arr = [0,1,0,1]
输出:true
解释:
路径 0 -> 1 -> 0 -> 1 是一个“有效序列”(图中的绿色节点)。
其他的“有效序列”是:
0 -> 1 -> 1 -> 0
0 -> 0 -> 0

示例 2:

输入:root = [0,1,0,0,1,0,null,null,1,0,0], arr = [0,0,1]
输出:false
解释:路径 0 -> 0 -> 1 不存在,所以这不是一个“序列”。

示例 3:

输入:root = [0,1,0,0,1,0,null,null,1,0,0], arr = [0,1,1]
输出:false
解释:路径 0 -> 1 -> 1 是一个序列,但不是一个“有效序列”
(译者注:因为序列的终点不是叶节点)。提示:
1 <= arr.length <= 5000
0 <= arr[i] <= 9
每个节点的值的取值范围是 [0 - 9]

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/check-if-a-string-is-a-valid-sequence-from-root-to-leaves-path-in-a-binary-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

class Solution {bool found = false;
public:bool isValidSequence(TreeNode* root, vector<int>& arr) {dfs(root,arr,0);return found;}void dfs(TreeNode* root, vector<int> &arr, int i){if(!root || found)return;else if((root&&i==arr.size())||(!root && i<arr.size()))return;if(root->val==arr[i]){if(!root->left && !root->right && i==arr.size()-1)found = true;dfs(root->left, arr, i+1);dfs(root->right, arr, i+1);}}
};

100 ms 49.1 MB


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 1430. 判断给定的序列是否是二叉树从根到叶的路径(递归)相关推荐

  1. C语言判断给定整数序列是否构成等差数列

    C语言判断给定整数序列是否构成等差数列 题目: 判断给定整数序列能够构成等差序列. 输入说明: 有多组数据,每组输入数据由两行构成,第一行只有一个整数n(<1000),表示序列(即序列中整数的个 ...

  2. leetcode 110 --- 判断给定的二叉树是否是平衡二叉树

    1 题目 判断给定的二叉树是否是平衡二叉树 平衡二叉树的性质为: 要么是一棵空树,要么任何一个节点的左右子树高度差的绝对值不超过 1. 一颗树的高度指的是树的根节点到所有节点的距离中的最大值. 2 解 ...

  3. LeetCode 1080. 根到叶路径上的不足节点(递归)

    1. 题目 给定一棵二叉树的根 root,请你考虑它所有 从根到叶的路径:从根到任何叶的路径.(所谓一个叶子节点,就是一个没有子节点的节点) 假如通过节点 node 的每种可能的 "根-叶& ...

  4. Leetcode 1022:从根到叶的二进制数之和(超详细的解法!!!)

    给出一棵二叉树,其上每个结点的值都是 0 或 1 .每一条从根到叶的路径都代表一个从最高有效位开始的二进制数.例如,如果路径为 0 -> 1 -> 1 -> 0 -> 1,那么 ...

  5. LeetCode 1022. 从根到叶的二进制数之和(递归)

    1. 题目 给出一棵二叉树,其上每个结点的值都是 0 或 1 .每一条从根到叶的路径都代表一个从最高有效位开始的二进制数.例如,如果路径为 0 -> 1 -> 1 -> 0 -> ...

  6. 给定入栈序列,判断出栈序列是否合法

    题目:分别给定入栈序列和出栈序列,然后判断出栈序列是否合法.如入栈序列是[1,3,2,4,5],出栈序列[3,1,2,4,5]是合法的,[3,1,5,2,4]是不合法的. 思路: 判断出栈序列是否合法 ...

  7. LeetCode高频题:《逆水寒》在地图的制作中,美术在地图上刷一片连通区域,连通区域自动填充,请你判断给定几个点位置,他们是否属于被刷区域

    LeetCode高频题:<逆水寒>在地图的制作中,美术在地图上刷一片连通区域,连通区域自动填充,请你判断给定几个点位置,他们是否属于被刷区域? 提示:本题是系列LeetCode的150道高 ...

  8. 图结构练习——判断给定图是否存在合法拓扑序列(topo)

    图结构练习--判断给定图是否存在合法拓扑序列 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description ...

  9. LeetCode 522. 最长特殊序列 II

    1. 题目 给定字符串列表,你需要从它们中找出最长的特殊序列. 最长特殊序列定义如下:该序列为某字符串独有的最长子序列(即不能是其他字符串的子序列). 子序列可以通过删去字符串中的某些字符实现,但不能 ...

最新文章

  1. [原创]Java性能优化权威指南读书思维导图
  2. javaweb报错There is no Action mapped for namespace [/] and action name [Login] context path [/struts]
  3. linux 下 storm环境搭建,Storm在Ubuntu环境下的单机部署
  4. 发力公有云的用友YonSuite,云原生实力到底如何?
  5. oracle监听启动很慢
  6. centos环境访问php显示源码,CentOS 6.8 搭建LNAMP环境(五)- PHP7源码安装Redis和Redis拓展...
  7. 【亚伦博客】反方观点: 下载不是偷窃
  8. java笔试完一般多久给通知_恭喜浙江,喜提浙江中烟招聘通知,一、二批共计招录130人左右...
  9. APP动态界面设计使用的利与弊
  10. Matlab图像处理函数:regionprops
  11. 嵌入式学习二:怎么学习Linux操作系统
  12. hfss螺旋平面_微波射频网HFSS平面螺旋天线设计
  13. 嵌入式C语言volatile作用
  14. AMD Ryzen Threadripper PRO 5000 series now available for the DIY market, 64 Zen3 cores for $6500
  15. Nextflow patterns
  16. JAVA图片加水印(电子奖状填充名字)
  17. 软件能力成熟度模型CMM
  18. Window安装Redis并设置为开机启动
  19. PhotoShop - 滤色模式(screen) 的 响应曲线(关于加镜头光晕的思考)
  20. 夏天宝宝晚上睡觉不踏实怎么办?

热门文章

  1. Flask 模板 之 变量和过滤器
  2. C语言中auto,register,extern,static【转】
  3. mysql mtop_mysqlmtop2.2运行出错
  4. aimesh node重启_ASSIMP的数据结构
  5. UIPickerView基本使用
  6. hive三种调用方式
  7. 【Python】模块学习之ConfigParser读写配置信息
  8. [leetcode 70]Climbing Stairs
  9. 20155220 实验三 敏捷开发与XP实践 实验报告
  10. 写了cookie阻止通过输入地址直接访问下一个html,但是直接输入地址访问时,会闪一下下一个页面,怎么回事啊????、...