题解 | #相逆叶子#

相逆叶子

https://www.nowcoder.com/practice/41c7b0e8710e43ca9f328bf06ea2aff3

题目考察的知识点:树的遍历

题目解答方法的文字分析:将树的叶子结点插入到一个数组中,然后比较两个数组是否逆序。

本题解析所用的编程语言:c++

void dfs(TreeNode* node, vector<int>& seq)
{
    if (!node->left && !node->right) 
        seq.push_back(node->val);
    else
    {
        if (node->left) 
            dfs(node->left, seq);

        if (node->right) 
            dfs(node->right, seq);

    }
}

bool leafSimilar(TreeNode* root1, TreeNode* root2)
{
    vector<int> seq1;
    if (root1) 
        dfs(root1, seq1);

    vector<int> seq2;
    if (root2) 
        dfs(root2, seq2);

    for (int i = 0, j = seq2.size() - 1; i < seq1.size(); ++i, --j)
    {
        if (seq1[i] != seq2[j])
            return false;
    }
    return true;
}

全部评论

相关推荐

10-30 19:23
已编辑
山东大学(威海) C++
牛至超人:其实简历是不需要事无巨细的写的,让对方知道你有这段经历就行了,最重要的是面试的时候讲细讲明白
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务