当前位置: 代码迷 >> 综合 >> 872. Leaf-Similar Trees 叶子相似树
  详细解决方案

872. Leaf-Similar Trees 叶子相似树

热度:49   发布时间:2023-11-17 00:57:25.0

题目要求

判断两课二叉树的叶子序列是否相等。叶子序列的定义,如下图的一棵二叉树,叶子序列是(6,7,4,9,8):
在这里插入图片描述

解题思路

由于要得到一棵二叉树的叶子结点的值,我们想到深度优先遍历。实际上这也是传统的DFS应用,我们只需要同时遍历两个数,对得到的序列进行判断是否相等即可。
易错点:
1、记得root为空的情况
2、vector& res

主要代码c++

/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {
    
public:vector<int>res1;vector<int>res2;bool leafSimilar(TreeNode* root1, TreeNode* root2) {
    dfs(root1, res1);dfs(root2, res2);return res1 == res2;}void dfs(TreeNode* root,vector<int>& res){
    if(root == NULL) return;if(root->left == NULL && root->right == NULL)res.push_back(root->val);dfs(root->left, res);dfs(root->right, res);}};