Wednesday, July 25, 2018

[LeetCode]Leaf-Similar Trees


递归收集两个数的叶子然后比较即可。时间复杂度O(m + n),m和n分别为两个树的size,代码如下:


class Solution {
public:
bool leafSimilar(TreeNode* root1, TreeNode* root2) {
vector<int> res1, res2;
dfs(root1, res1);
dfs(root2, res2);
return res1 == res2;
}
private:
void dfs(TreeNode* node, vector<int>& leaves)
{
if (!node)return;
if (!node->left && !node->right)
{
leaves.push_back(node->val);
return;
}
dfs(node->left, leaves);
dfs(node->right, leaves);
}
};

No comments:

Post a Comment