Tree 叶相似树问题测试失败

Tree 叶相似树问题测试失败,tree,Tree,我试图解决这个Leetcode问题- 考虑二元树的所有叶,从左到右顺序,这些叶的值形成叶值序列。 如果两棵二叉树的叶值序列相同,则认为它们的叶相似。 当且仅当具有头节点root1和root2的两个给定树的叶相似时,返回true 我不明白为什么这个测试失败->输入:root1=[1,2,3],root2=[1,3,2]输出:false 这是我的密码: class Solution { public: vector<int> printLeafNodes(TreeNode *ro

我试图解决这个Leetcode问题- 考虑二元树的所有叶,从左到右顺序,这些叶的值形成叶值序列。 如果两棵二叉树的叶值序列相同,则认为它们的叶相似。 当且仅当具有头节点root1和root2的两个给定树的叶相似时,返回true

我不明白为什么这个测试失败->输入:root1=[1,2,3],root2=[1,3,2]输出:false

这是我的密码:

class Solution {
public:
    vector<int> printLeafNodes(TreeNode *root) {
        // if node is null, return
        vector<int> sol;
        if (root == NULL) return {};
        if (!root->left && !root->right) {
            sol.push_back(root->val);
            return sol;
        }
        if (root->left)
           printLeafNodes(root->left);
        if (root->right)
           printLeafNodes(root->right);
        return sol;
    }
    
    bool leafSimilar(TreeNode* root1, TreeNode* root2) {
        vector<int> sol1, sol2;
        sol1 = printLeafNodes(root1);
        sol2 = printLeafNodes(root2);
         return sol1 == sol2;
    }
};
类解决方案{
公众:
向量printLeafNodes(TreeNode*根){
//如果节点为null,则返回
矢量溶胶;
if(root==NULL)返回{};
如果(!root->left&!root->right){
sol.推回(root->val);
返回溶胶;
}
如果(根->左)
printLeafNodes(根->左);
如果(根->右)
printLeafNodes(根->右);
返回溶胶;
}
bool-leaftsimular(TreeNode*root1,TreeNode*root2){
矢量sol1,sol2;
sol1=打印叶节点(root1);
sol2=打印叶节点(root2);
返回sol1==sol2;
}
};