請實現一個函數,用來判斷一顆二叉樹是否是對稱的。注意,若是一個二叉樹同此二叉樹的鏡像是一樣的,定義其爲對稱的。c++
c++:函數
1 /* 2 struct TreeNode { 3 int val; 4 struct TreeNode *left; 5 struct TreeNode *right; 6 TreeNode(int x) : 7 val(x), left(NULL), right(NULL) { 8 } 9 }; 10 */ 11 class Solution { 12 public: 13 bool isSymmetrical(TreeNode* pRoot) 14 { 15 if (pRoot == NULL) 16 return true ; 17 return isSymmetrical(pRoot->left , pRoot->right) ; 18 } 19 20 bool isSymmetrical(TreeNode* t1 , TreeNode* t2){ 21 if (t1 == NULL && t2 == NULL) 22 return true ; 23 if (t1 == NULL || t2 == NULL) 24 return false ; 25 if (t1->val != t2->val) 26 return false ; 27 return isSymmetrical(t1->left , t2->right) && isSymmetrical(t1->right , t2->left); 28 } 29 30 31 32 };