LeetCode 100은 두 개의 두 갈래 트리를 지정하고 함수를 작성해서 그것이 같은지 확인합니다.만약 두 나무가 구조적으로 같고 노드가 같은 값을 가지고 있다면 그것들은 같다고 여긴다.

2292 단어 #LEETCODE
두 개의 두 갈래 나무를 정해서 함수를 만들어서 그것들이 같은지 확인하세요.
만약 두 나무가 구조적으로 같고 노드가 같은 값을 가지고 있다면 그것들은 같다고 여긴다.
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    bool isSameTree(TreeNode* p, TreeNode* q) {
        if (!p && !q) return true;
        if ((p && !q) || (!p && q) || (p->val != q->val)) return false;
        return isSameTree(p->left, q->left) && isSameTree(p->right, q->right);

        // stack s1, s2;
        // if (p) s1.push(p);
        // if (q) s2.push(q);
        // while (!s1.empty() && !s2.empty()) {
        //     TreeNode *t1 = s1.top(); s1.pop();
        //     TreeNode *t2 = s2.top(); s2.pop();
        //     if (t1->val != t2->val) return false;
        //     if (t1->left) s1.push(t1->left);
        //     if (t2->left) s2.push(t2->left);
        //     if (s1.size() != s2.size()) return false;
        //     if (t1->right) s1.push(t1->right);
        //     if (t2->right) s2.push(t2->right);
        //     if (s1.size() != s2.size()) return false;
        // }
        // return s1.size() == s2.size();
    }
};

좋은 웹페이지 즐겨찾기