(node1, node2)
| 16 | */ |
| 17 | var flipEquiv = function (root1, root2) { |
| 18 | const dfs = (node1, node2) => { |
| 19 | if (!node1 && !node2) return true; |
| 20 | if (!node1) return false; |
| 21 | if (!node2) return false; |
| 22 | |
| 23 | if (node1.val !== node2.val) return false; |
| 24 | |
| 25 | if ((node1.left && node1.left.val) !== (node2.left && node2.left.val)) { |
| 26 | return dfs(node1.right, node2.left) && dfs(node1.left, node2.right); |
| 27 | } |
| 28 | |
| 29 | return dfs(node1.left, node2.left) && dfs(node1.right, node2.right); |
| 30 | }; |
| 31 | |
| 32 | return dfs(root1, root2); |
| 33 | }; |