题目:给定一个有 N 个节点的二叉树,每个节点都有一个不同于其他节点且处于 {1, …, N} 中的值。
通过交换节点的左子节点和右子节点,可以翻转该二叉树中的节点。
考虑从根节点开始的先序遍历报告的 N 值序列。将这一 N 值序列称为树的行程。
(回想一下,节点的先序遍历意味着我们报告当前节点的值,然后先序遍历左子节点,再先序遍历右子节点。)
我们的目标是翻转最少的树中节点,以便树的行程与给定的行程 voyage 相匹配。
如果可以,则返回翻转的所有节点的值的列表。你可以按任何顺序返回答案。
如果不能,则返回列表 [-1]。


参考
别人思路: 若当前节点为空,返回True;若当前节点不等于目标值,返回False;若当前节点的左孩子不为空且不等于目标值,则反转。

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/
class Solution {int i = 0;ArrayList list = new ArrayList<>();public List<Integer> flipMatchVoyage(TreeNode root, int[] voyage) {return dfs(root, voyage) ? list : Arrays.asList(-1);}public Boolean dfs(TreeNode root, int v[]){if(root == null){return true;}if(root.val != v[i++]){return false;}if(root.left != null && root.left.val != v[i]){list.add(root.val);return dfs(root.right, v) && dfs(root.left, v);}return dfs(root.left, v) && dfs(root.right, v);}
}

leetcode971. Flip Binary Tree To Match Preorder Traversal相关推荐

  1. leetcode 971. Flip Binary Tree To Match Preorder Traversal

    leetcode 971. Flip Binary Tree To Match Preorder Traversal 题意:给一颗二叉树,再给一个的数组,能否通过交换两个左右两个子节点,使得二叉树的前 ...

  2. 【LeetCode】971. Flip Binary Tree To Match Preorder Traversal

    题目地址: 971. Flip Binary Tree To Match Preorder Traversal 解析 本题是关于二叉树翻转的题目,给定一个二叉树,对于其中的一个节点的翻转定义为该节点的 ...

  3. leetcode | 971. Flip Binary Tree To Match Preorder Traversal(DFS/preorder)

    https://leetcode.com/problems/flip-binary-tree-to-match-preorder-traversal/ 分析:题目要求,如何通过swap左右节点的方式, ...

  4. Given a binary search tree with its preorder traversal sequence { 8, 2, 15, 10, 12, 21 }.…

    题目 Given a binary search tree with its preorder traversal sequence { 8, 2, 15, 10, 12, 21 }. If 8 is ...

  5. LeetCode 103. 二叉树的锯齿形层次遍历(Binary Tree Zigzag Level Order Traversal)

    103. 二叉树的锯齿形层次遍历 103. Binary Tree Zigzag Level Order Traversal 题目描述 给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再 ...

  6. LeetCode 103. Binary Tree Zigzag Level Order Traversal

    LeetCode 103. Binary Tree Zigzag Level Order Traversal Solution1:基于层次遍历的微改 /*** Definition for a bin ...

  7. LeetCode: 103. Binary Tree Zigzag Level Order Traversal

    题目 Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left ...

  8. leetcode103JAVA_[LeetCode] 103. Binary Tree Zigzag Level Order Traversal Java

    题目: Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from lef ...

  9. Binary Tree Zigzag Level Order Traversal

    跟之前的解法一模一样Binary Tree Level Order Traversal I,II  不赘述 public class Solution {public ArrayList<Arr ...

最新文章

  1. javascript常用工具类封装
  2. Pdf怎么转换excel表格,职场人士必备技能
  3. 详细设计 英文_官宣 | 闽江学院官方文创产品设计稿征集
  4. 小红书8月2日正式推行“号店一体”机制 月销万元以下商家免收佣金
  5. java 微信 百度地图,android 百度地图gps转百度地图坐标java.lang.UnsatisfiedLinkError: CoordinateEncryptEx...
  6. 如何了解百度竞价调价技巧
  7. 开发一个app多少钱?app开发费用明细、app开发成本计算
  8. 桌面我的计算机图标,让桌面显示我的电脑或者我的计算机图标
  9. 线程池的设计与原理解析(二)之---execute()方法
  10. Assets, Objects and serialization Assets, Objects与序列化 最佳实践系列3
  11. php7 memcached sasl,启用MemCached的SASL认证
  12. SpaceShooter打飞机教程笔记(二)
  13. 使用CSS绘制一个平行四边形
  14. Swagger3.0快速开发及空指针异常的解决
  15. python写入中文json
  16. QVGA HVGA WVGA VGA
  17. 阿里、百度、腾讯Java程序员面经(附带面试题答案)
  18. Android 与Vue 页面交互
  19. vcruntime140d.dl丢失怎么办?
  20. SpringBoot + Vue 个人网站接入QQ登录手把手教你 完整版 新手友好

热门文章

  1. 【实验报告】二 网络嗅探与欺骗
  2. spring---aop(3)---Spring AOP的拦截器链
  3. PlaceholderImageView
  4. 环形数组求最大子数组之和
  5. [转载]Linux Shell 的快捷键
  6. Vue 使用 v-show 失效
  7. 基于MySQL和JavaFX的学生管理系统
  8. 零代码、不花钱就能做大屏,这个报表工具帮了大忙
  9. Bootstrap Table事件
  10. linux防火墙为空文件夹,如何记录Linux IPTables防火墙丢弃的数据包到日志文件-linux防火墙设置...