zoukankan      html  css  js  c++  java
  • 2021.5.10-(叶子相似的树)

    题目链接:https://leetcode-cn.com/problems/leaf-similar-trees
    题目描述:
    请考虑一棵二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。

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

    题解:

    
    /**
     * 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: 
        //先序遍历
        void travel(TreeNode* node, vector<int>& vec)
        {
            if(node == nullptr)
                return;
            if(node->left == nullptr && node->right == nullptr)
                vec.push_back(node->val);
            travel(node->left, vec);
            travel(node->right, vec);
        }
        bool leafSimilar(TreeNode* root1, TreeNode* root2) {
            vector<int> vec1;
            vector<int> vec2;
            travel(root1, vec1);
            travel(root2, vec2);
            if(vec2 == vec1)
                return true;
            else
                return false;
            
        }
    };
    
    
  • 相关阅读:
    javascript概述
    linux系统编程(一)概述
    软件工程
    SQL
    数据结构和算法(一)概述
    cpp标准库
    c语言标准库
    c/c++概述
    编程语言的思考
    GCD学习
  • 原文地址:https://www.cnblogs.com/ZigHello/p/14750703.html
Copyright © 2011-2022 走看看