50220. Ternary Tree Isomorphic

難度:3.5/5

Second Try: 3/5 Used Time 13:35

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <stdio.h>
#include <stdbool.h>
#include "isIsomorphic.h"
#define f isIsomorphic

// struct TreeNode {
// struct TreeNode *left;
// struct TreeNode *mid;
// struct TreeNode *right;
// };
//
// typedef struct TreeNode TreeNode;

bool isIsomorphic(TreeNode* a, TreeNode* b){
if(a == NULL && b == NULL) return true;
else if(a == NULL || b == NULL) return false;

bool ll = f(a->left, b->left);
bool lm = f(a->left, b->mid);
bool lr = f(a->left, b->right);
bool ml = f(a->mid, b->left);
bool mm = f(a->mid, b->mid);
bool mr = f(a->mid, b->right);
bool rl = f(a->right, b->left);
bool rm = f(a->right, b->mid);
bool rr = f(a->right, b->right);

bool lmr = (ll && mm && rr);
bool lrm = (ll && mr && rm);
bool mlr = (lm && ml && rr);
bool mrl = (lm && mr && rl);
bool rlm = (lr && ml && rm);
bool rml = (lr && mm && rl);

return lmr || lrm || mlr || mrl || rlm || rml;
}


50220. Ternary Tree Isomorphic
https://aaronlin1229.github.io/judgegirl_50220/
Author
Akizumi
Posted on
July 17, 2023
Licensed under