leetcode 101. 대칭 두 갈래 트리(Symmetric Tree)

1352 단어
카탈로그
  • 제목 설명:
  • 설명:
  • 해법:
  • 제목 설명:


    두 갈래 나무를 정해서 거울이 대칭적인지 확인하세요.
    예를 들어 두 갈래 나무[1,2,2,3,4,4,3]는 대칭적이다.
            1
           / \
          2   2
         / \ / \
        3  4 4  3

    그러나 아래의 이것[1,2,2,null,3,null,3]은 거울의 대칭이 아니다.
            1
           / \
          2   2
           \   \
           3    3

    설명:

  • 귀속과 교체 두 가지 방법으로 이 문제를 해결할 수 있다면 가산점이 있을 것이다.

  • 해법:

    /**
     * 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 isSymmetric(TreeNode* l, TreeNode* r){
            if(l == NULL && r == NULL){
                return true;
            }else if(l == NULL || r == NULL || l->val != r->val){
                return false;
            }else{
                return isSymmetric(l->left, r->right) && isSymmetric(l->right, r->left);
            }
        }
        
        bool isSymmetric(TreeNode* root) {
            if(root == NULL){
                return true;
            }else{
                return isSymmetric(root->left, root->right);
            }
        }
    };

    다음으로 전송:https://www.cnblogs.com/zhanzq/p/10556948.html

    좋은 웹페이지 즐겨찾기