Leaf-Similar Trees

判断树底是否相同
my solution
这是一道很简单的题, 实现并不难, 问题是怎么更好地实现.
深度/广度都无法做到”一触即发”(协程/多线程或许可以). 所需需要手动来记录一下.
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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
   | class Solution { public:     bool leafSimilar(TreeNode* root1, TreeNode* root2) {         array<TreeNode*, 200> t1 { root1 };         array<TreeNode*, 200> t2 { root2 };         int i1 = 0, i2 = 0;         while (true) {                          while (true) {                 if (root1->left) {                     root1 = root1->left;                 } else if (root1->right) {                     root1 = root1->right;                 } else {                     break;                 }                                  t1[++i1] = root1;             }                          while (true) {                 if (root2->left) {                     root2 = root2->left;                 } else if (root2->right) {                     root2 = root2->right;                 } else {                     break;                 }                                  t2[++i2] = root2;             }                          if (t1[i1]->val != t2[i2]->val) {                 return false;             }                                       while (i1 > 0) {                 if (t1[i1] != t1[i1 - 1]->right && t1[i1 - 1]->right) {                     break;                 }                 --i1;             }                          while (i2 > 0) {                 if (t2[i2] != t2[i2 - 1]->right && t2[i2 - 1]->right) {                     break;                 }                 --i2;             }                          if (!(i1 || i2)) {	                 break;             } else if (!(i1 && i2)) {	                 return false;             }                          root1 = t1[--i1]->right;             t1[++i1] = root1;             root2 = t2[--i2]->right;             t2[++i2] = root2;         }                  return true;     } };
  | 
 
代码量是多了点, 但是没有使用高级数据结构, 没有递归. 能够”一触即发”.