zoukankan      html  css  js  c++  java
  • 刷题-力扣-872. 叶子相似的树

    872. 叶子相似的树

    题目链接

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/leaf-similar-trees/
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    题目描述

    请考虑一棵二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。

    举个例子,如上图所示,给定一棵叶值序列为 (6, 7, 4, 9, 8) 的树。
    如果有两棵二叉树的叶值序列是相同,那么我们就认为它们是 叶相似 的。
    如果给定的两个根结点分别为 root1 和 root2 的树是叶相似的,则返回 true;否则返回 false 。

    示例 1:

    输入:root1 = [3,5,1,6,2,9,8,null,null,7,4], root2 = [3,5,1,6,7,4,2,null,null,null,null,null,null,9,8]
    输出:true
    

    示例 2:

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

    示例 3:

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

    示例 4:

    输入:root1 = [1,2], root2 = [2,2]
    输出:true
    

    示例 5:

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

    提示:

    • 给定的两棵树可能会有 1 到 200 个结点。
    • 给定的两棵树上的值介于 0 到 200 之间。

    题目分析

    1. 根据题目描述比较两棵树的叶子结点是否相同
    2. 使用先序遍历每一棵树,记录没课树的叶子结点,再比较两棵树的叶子结点是否相同

    代码

    /**
     * Definition for a binary tree node.
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
     *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
     *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
     * };
     */
    class Solution {
    public:
        bool leafSimilar(TreeNode* root1, TreeNode* root2) {
            vector<int> leafs1;
            vector<int> leafs2;
            preOrder(root1, leafs1);
            preOrder(root2, leafs2);
            return (leafs1 == leafs2);
        }
    
    private:
        void preOrder(TreeNode* root, vector<int>& nums) {
            if (root == nullptr) return;
            if (root->left == nullptr && root->right == nullptr) nums.push_back(root->val);
            else {
                preOrder(root->left, nums);
                preOrder(root->right, nums);
            }
        }
    
    };
    
  • 相关阅读:
    修复 Visual Studio Error “No exports were found that match the constraint”
    RabbitMQ Config
    Entity Framework Extended Library
    Navisworks API 简单二次开发 (自定义工具条)
    NavisWorks Api 简单使用与Gantt
    SQL SERVER 竖表变成横表
    SQL SERVER 多数据导入
    Devexpress GridControl.Export
    mongo DB for C#
    Devexress XPO xpPageSelector 使用
  • 原文地址:https://www.cnblogs.com/HanYG/p/14750982.html
Copyright © 2011-2022 走看看