leetcode971. Flip Binary Tree To Match Preorder Traversal
题目:给定一个有 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相关推荐
- leetcode 971. Flip Binary Tree To Match Preorder Traversal
leetcode 971. Flip Binary Tree To Match Preorder Traversal 题意:给一颗二叉树,再给一个的数组,能否通过交换两个左右两个子节点,使得二叉树的前 ...
- 【LeetCode】971. Flip Binary Tree To Match Preorder Traversal
题目地址: 971. Flip Binary Tree To Match Preorder Traversal 解析 本题是关于二叉树翻转的题目,给定一个二叉树,对于其中的一个节点的翻转定义为该节点的 ...
- leetcode | 971. Flip Binary Tree To Match Preorder Traversal(DFS/preorder)
https://leetcode.com/problems/flip-binary-tree-to-match-preorder-traversal/ 分析:题目要求,如何通过swap左右节点的方式, ...
- 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 ...
- LeetCode 103. 二叉树的锯齿形层次遍历(Binary Tree Zigzag Level Order Traversal)
103. 二叉树的锯齿形层次遍历 103. Binary Tree Zigzag Level Order Traversal 题目描述 给定一个二叉树,返回其节点值的锯齿形层次遍历.(即先从左往右,再 ...
- LeetCode 103. Binary Tree Zigzag Level Order Traversal
LeetCode 103. Binary Tree Zigzag Level Order Traversal Solution1:基于层次遍历的微改 /*** Definition for a bin ...
- 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 ...
- 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 ...
- Binary Tree Zigzag Level Order Traversal
跟之前的解法一模一样Binary Tree Level Order Traversal I,II 不赘述 public class Solution {public ArrayList<Arr ...
最新文章
- javascript常用工具类封装
- Pdf怎么转换excel表格,职场人士必备技能
- 详细设计 英文_官宣 | 闽江学院官方文创产品设计稿征集
- 小红书8月2日正式推行“号店一体”机制 月销万元以下商家免收佣金
- java 微信 百度地图,android 百度地图gps转百度地图坐标java.lang.UnsatisfiedLinkError: CoordinateEncryptEx...
- 如何了解百度竞价调价技巧
- 开发一个app多少钱?app开发费用明细、app开发成本计算
- 桌面我的计算机图标,让桌面显示我的电脑或者我的计算机图标
- 线程池的设计与原理解析(二)之---execute()方法
- Assets, Objects and serialization Assets, Objects与序列化 最佳实践系列3
- php7 memcached sasl,启用MemCached的SASL认证
- SpaceShooter打飞机教程笔记(二)
- 使用CSS绘制一个平行四边形
- Swagger3.0快速开发及空指针异常的解决
- python写入中文json
- QVGA HVGA WVGA VGA
- 阿里、百度、腾讯Java程序员面经(附带面试题答案)
- Android 与Vue 页面交互
- vcruntime140d.dl丢失怎么办?
- SpringBoot + Vue 个人网站接入QQ登录手把手教你 完整版 新手友好