对称的二叉树

class Solution {
public:
    //pRoot1, *pRoot2两种遍历方式
	bool IsSym(TreeNode*pRoot1, TreeNode*pRoot2)
	{
		if (!pRoot1&&!pRoot2)
			return true;
		if (!pRoot1 || !pRoot2)//考虑遍历叶子的子节点
			return false;
		if (pRoot1->val != pRoot2->val)//必要条件是相等
			return false;
		return IsSym(pRoot1->left, pRoot2->right) && IsSym(pRoot1->right, pRoot2->left);
	}
	bool isSymmetrical(TreeNode* pRoot)
	{
		if (pRoot == nullptr)return true;
		return IsSym(pRoot, pRoot);
	}

};

你可能感兴趣的:(剑指offer题,剑指offer)