美文网首页
951. 翻转等价二叉树

951. 翻转等价二叉树

作者: 程序员小2 | 来源:发表于2022-11-02 09:59 被阅读0次

    题目:

    我们可以为二叉树 T 定义一个 翻转操作 ,如下所示:选择任意节点,然后交换它的左子树和右子树。

    只要经过一定次数的翻转操作后,能使 X 等于 Y,我们就称二叉树 X 翻转 等价 于二叉树 Y。

    这些树由根节点 root1 和 root2 给出。如果两个二叉树是否是翻转 等价 的函数,则返回 true ,否则返回 false 。

    示例 1:

    image.png

    输入:root1 = [1,2,3,4,5,6,null,null,null,7,8], root2 = [1,3,2,null,6,4,5,null,null,null,null,8,7]
    输出:true
    解释:我们翻转值为 1,3 以及 5 的三个节点。
    示例 2:

    输入: root1 = [], root2 = []
    输出: true
    示例 3:

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

    提示:

    每棵树节点数在 [0, 100] 范围内
    每棵树中的每个值都是唯一的、在 [0, 99] 范围内的整数

    java代码:

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode() {}
     *     TreeNode(int val) { this.val = val; }
     *     TreeNode(int val, TreeNode left, TreeNode right) {
     *         this.val = val;
     *         this.left = left;
     *         this.right = right;
     *     }
     * }
     */
     class Solution {
        public boolean flipEquiv(TreeNode root1, TreeNode root2) {
            List<Integer> vals1 = new ArrayList();
            List<Integer> vals2 = new ArrayList();
            dfs(root1, vals1);
            dfs(root2, vals2);
            return vals1.equals(vals2);
        }
    
        public void dfs(TreeNode node, List<Integer> vals) {
            if (node != null) {
                vals.add(node.val);
                int L = node.left != null ? node.left.val : -1;
                int R = node.right != null ? node.right.val : -1;
    
                if (L < R) {
                    dfs(node.left, vals);
                    dfs(node.right, vals);
                } else {
                    dfs(node.right, vals);
                    dfs(node.left, vals);
                }
    
                vals.add(null);
            }
        }
    }
    
    

    相关文章

      网友评论

          本文标题:951. 翻转等价二叉树

          本文链接:https://www.haomeiwen.com/subject/qkcjtdtx.html