Leetcode 之Same Tree(48)

用递归比较简单,这里用迭代的方式实现。注意什么时候返回true,什么时候返回false。

bool isSameTree(TreeNode *p, TreeNode *q)
      {
          
          stack<TreeNode *> s;
          s.push(p);
          s.push(q);
          while (!s.empty())
          {
              q = s.top(); s.pop();
              p = s.top(); s.pop();
              //两个都为空
              if (!p && !q)return true;
              //一个为空
              if (!p || !q)return false;
              if (p->val != q->val)return false;

              s.push(p->left);
              s.push(q->left);

              s.push(p->right);
              s.push(q->right);
          }
          return true;
      }
View Code

 

posted @ 2016-06-01 14:12  牧马人夏峥  阅读(120)  评论(0编辑  收藏  举报