For example, this binary tree
[1,2,2,3,4,4,3] is symmetric:
1 / \ 2 2 / \ / \ 3 4 4 3But the following
[1,2,2,null,3,null,3] is not:1 / \ 2 2 \ \ 3 3
簡單來說,判斷是否為對稱樹
程式碼
class Solution {
public:
bool isSymmetric(TreeNode* root)
{
if (root == NULL) return true;
return isSymc(root->left, root->right);
}
bool isSymc(TreeNode* left, TreeNode* right)
{
if (left == nullptr)
{
return right == nullptr;
}
if (right == nullptr)
{
return left == nullptr;
}
if (left->val != right->val)
{
return false;
}
// 檢查是否對稱
if (!isSymc(left->right, right->left))
{
return false;
}
if (!isSymc(left->left, right->right))
{
return false;
}
return true;
}
};
沒有留言 :
張貼留言