LeetCode | 101. 对称二叉树

LeetCode | 101. 对称二叉树

OJ链接

LeetCode | 101. 对称二叉树_第1张图片

  • 在本函数里不好进行判断,我们另外定义一个函数来
  • 如果两个都相等为空,就返回true
  • 一个为空,一个不为空
  • 都不为空,就比较值
  • 然后递归1的左,2的右,1的右,2的左
bool _isSymmetric(struct TreeNode* root1,struct TreeNode* root2)
{
    //如果两个都相等为空,就返回true
    if(root1 == NULL && root2 == NULL)
        return true;
    
    //一个为空,一个不为空
    if(root1 == NULL || root2 == NULL)
        return false;
    
    //都不为空,就比较值
    if(root1->val != root2->val)
        return false;

    //遍历root1的左和2右
    //1的右和2的左
    return _isSymmetric(root1->left,root2->right)
        && _isSymmetric(root1->right,root2->left);
}


bool isSymmetric(struct TreeNode* root) {
    return _isSymmetric(root->left,root->right);
}

你可能感兴趣的:(LeetCode,leetcode,linux,算法)