劍指offer 面試題28:對稱的二叉樹 c++
阿新 • • 發佈:2018-11-20
題目:請實現一個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果一個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。(要想象一下他的結構)
思路:遞迴判斷,左子樹的左子樹和右子樹的右子樹比較,左子樹的右子樹和右子樹的左子樹比較,若相等則是,否則不是。
class Solution { public: bool isSym(TreeNode* left,TreeNode *right) { if(right==nullptr && left==nullptr) return true; if(right==nullptr || left==nullptr) return false; return isSym(left->left,right->right) &&isSym(left->right,right->left) && (left->val == right->val); } bool isSymmetrical(TreeNode* pRoot) { if (pRoot==nullptr) return true; return isSym(pRoot->left,pRoot->right); } };