Same Tree

来源:互联网 发布:java全能速查宝典 pdf 编辑:程序博客网 时间:2024/05/16 07:46

方法一,递归,时间O(n),空间O(logN)。代码如下:

class Solution {public:    bool isSameTree(TreeNode *p, TreeNode *q)     {        if(!p && !q) return true;        if(!p || !q) return false;                return (p->val == q->val)            && isSameTree(p->left, q->left)            && isSameTree(p->right,q->right);    }};
方法二,迭代,时间O(n),空间O(logN)。代码如下:
class Solution {public:    bool isSameTree(TreeNode *p, TreeNode *q)     {        stack<TreeNode*> s;        s.push(p);        s.push(q);                while(!s.empty()) {            p = s.top(); s.pop();            q = s.top(); s.pop();                        if(!p && !q) continue;            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;    }};

0 0
原创粉丝点击