剑指offer系列47:对称的二叉树

这个题的主要思路是:

用二叉树的左子树的右子树和右子树的左子树比较,再用左子树的左子树和右子树的右子树比较。(好像有点绕,但其实就是对称的思想)

剑指offer的说法是用树的前序遍历的两个方法,前序遍历应该是:根-》左-》右。但是我们用另一种前序遍历:根-》右-》左。如果这两个序列一样就判断它是对称的。

这两个方法在实现上其实是一样的。

 1 class Solution {
 2 public:
 3     bool isSymmetrical(TreeNode* pRoot)
 4     {
 5         return aux(pRoot, pRoot);
 6     }
 7     bool aux(TreeNode* pleft, TreeNode* pright)
 8     {
 9         if (pleft == NULL&&pright == NULL)
10             return true;
11         if (pleft == NULL || pright == NULL)
12             return false;
13         if (pleft->val != pright->val)
14             return false;
15 
16         return aux(pleft->left, pright->right) && aux( pright->right, pleft->left);
17     }
18 
19 };
原文地址:https://www.cnblogs.com/neverland0718/p/11253758.html