參考資訊:
https://www.cnblogs.com/grandyang/p/10771842.html
題目:

解答:
int dfs(struct TreeNode *n, int *r, int *p)
{
if (!n) {
return -1;
}
if (!n->left && !n->right) {
r[(*p)++] = n->val;
return 1;
}
dfs(n->left, r, p);
dfs(n->right, r, p);
return 0;
}
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
bool leafSimilar(struct TreeNode* root1, struct TreeNode* root2) {
int i = 0;
int p1 = 0;
int p2 = 0;
int r1[201] = { 0 };
int r2[201] = { 0 };
dfs(root1, r1, &p1);
dfs(root2, r2, &p2);
if (p1 != p2) {
return false;
}
for (i = 0; i < p1; i++) {
if (r1[i] != r2[i]) {
return false;
}
}
return true;
}