给定一个有 N 个节点的二叉树,每个节点都有一个不同于其他节点且处于 {1, ..., N} 中的值。

通过交换节点的左子节点和右子节点,可以翻转该二叉树中的节点。

考虑从根节点开始的先序遍历报告的 N 值序列。将这一 N 值序列称为树的行程。

(回想一下,节点的先序遍历意味着我们报告当前节点的值,然后先序遍历左子节点,再先序遍历右子节点。)

我们的目标是翻转最少的树中节点,以便树的行程与给定的行程 voyage 相匹配。

如果可以,则返回翻转的所有节点的值的列表。你可以按任何顺序返回答案。

如果不能,则返回列表 [-1]

示例 1:

输入:root = [1,2], voyage = [2,1]
输出:[-1]

示例 2:

输入:root = [1,2,3], voyage = [1,3,2]
输出:[1]

示例 3:

输入:root = [1,2,3], voyage = [1,2,3]
输出:[]

提示:

  1. 1 <= N <= 100

971. 翻转二叉树以匹配先序遍历相关推荐

  1. LeetCode 971. 翻转二叉树以匹配先序遍历(DFS)

    1. 题目 给定一个有 N 个节点的二叉树,每个节点都有一个不同于其他节点且处于 {1, -, N} 中的值. 通过交换节点的左子节点和右子节点,可以翻转该二叉树中的节点. 考虑从根节点开始的先序遍历 ...

  2. leetcode971. 翻转二叉树以匹配先序遍历

    leetcode971. 翻转二叉树以匹配先序遍历 这道题的说明还没有题目清晰,所以不粘题内容了. 思路 前序遍历,遇到当前节点和对应的voyage值不相等的时候,返回false. 并且看当前节点的左 ...

  3. 【leetcode 971】 翻转二叉树以匹配先序遍历

    题意: 给定一个先序遍历序列,给出一棵树,问能否通过翻转改树的某些左右子节点,使得该树的先序遍历序列等于给定的先序遍历序列 思路: 很基础的题目了,就是先序遍历一下,如果在这个节点的左子节点的值不等于 ...

  4. leetcode971. 翻转二叉树以匹配先序遍历(dfs)

    给定一个有 N 个节点的二叉树,每个节点都有一个不同于其他节点且处于 {1, -, N} 中的值. 通过交换节点的左子节点和右子节点,可以翻转该二叉树中的节点. 考虑从根节点开始的先序遍历报告的 N ...

  5. 二叉树非递归先序遍历

    二叉树的递归先序遍历很简单,假设二叉树的结点定义如下: 1 struct BinaryTreeNode 2 { 3 int m_nValue; 4 BinaryTreeNode* m_pLeft; 5 ...

  6. 二叉树建立及中序遍历C++语言实现

    二叉树建立及中序遍历C++语言实现: #include<stdio.h> #include<stdlib.h> typedef struct node{//二叉树结点数据结构定 ...

  7. 栈的亚特兰数与二叉树的前序中序遍历序列

    栈的亚特兰数与二叉树的前序中序遍历 @(算法学习) 已经熟知的是二叉树的中序遍历和先序遍历可以唯一确定一棵树. 更有趣的知识点是,以先序遍历序列作为入栈序列,那么出栈序列恰为中序遍历.这样就把两种遍历 ...

  8. 二叉树前中后序遍历的非递归实现以及层次遍历、zig-zag型遍历详解

    前言 二叉树的遍历是一个比较常见的问题,递归实现二叉树的前中后序遍历比较简单,但非递归实现二叉树的前中后序遍历相对有难度.这篇博客将详述如何使用非递归的方式实现二叉树的前中后序遍历,在进行理论描述的同 ...

  9. 二叉树,二叉树的归先序遍历,中序遍历,后序遍历,递归和非递归实现

    二叉树,二叉树的归先序遍历,中序遍历,后序遍历,递归和非递归实现 提示:今天开始,系列二叉树的重磅基础知识和大厂高频面试题就要出炉了,咱们慢慢捋清楚! 文章目录 二叉树,二叉树的归先序遍历,中序遍历, ...

最新文章

  1. java基础学习(2)-java基本数据类型
  2. 中国工程院谭建荣:人工智能应用得再好,最核心的算法不行,创新能力就不行丨MEET2021...
  3. 直流UPS供电系统在数据中心机房中的应用分析
  4. 2016-03-09c中指针与数组学习记录
  5. python 下字符串格式时间比较
  6. unity3D游戏开发实战原创视频讲座系列7之消消乐游戏开发
  7. IntelliJ IDEA License Activation系列验证爆错: This license BIG3CLIK6F has been cancelled d 解决
  8. Android自定义View【实战教程】4⃣️----BitmapShader详解及圆形、圆角、多边形实现
  9. java内存泄露 垃圾回收_Java面试中底层垃圾回收、代码安全、内存泄露
  10. C语言小程序-学生成绩统计系统
  11. SWAT模型中土壤水文分组的一些思考
  12. 希望自己活成什么样的人
  13. 滴滴天使投资人的25条创业建议
  14. User Browsing Model简介
  15. 什么手势使用电子计算机比较快,手势功能
  16. 权限管理需要哪几张表
  17. 【心慈喜讯】“心”启航青少年心理健康支持项目成功入选广州市海珠区“慈泉杯”社会组织公益创投活动
  18. TSC打印机使用教程终极版
  19. DSA-数据签名算法(理论)
  20. 该如何选择Java开发和嵌入式开发

热门文章

  1. 股票自选股基本函数大全-3
  2. C++语法——详解智能指针的概念、实现原理、缺陷
  3. vs code 软件设置中文
  4. python入门 数据类型(七种数据类型,序列,元素)
  5. ambari部署hadoop
  6. 基于Android的聊天系统
  7. 丝毫不懂代码——gluoncv库进行语义分割(python)
  8. 啊!啊!啊!IEEE754移码偏移值的127!
  9. mysql查询bom清单_Oracle EBS-SQL (BOM-12):BOM清单查询
  10. git密码重置后如何登录