class Solution { public: TreeNode* invertTree(TreeNode* root) { if(root==NULL) return root; swap(root->left,root->right); invertTree(root->left); invertTree(root->right); return root; } };
class Solution { public: bool isSymmetric(TreeNode* root) { if (root == NULL) return true; return compare(root->left, root->right); } bool compare(TreeNode* left, TreeNode* right) { if (left == NULL && right != NULL) return false; if (left != NULL && right == NULL) return false; if (left == NULL && right == NULL) return true; if (left->val != right->val) return false; else { bool outside = compare(left->left, right->right); bool Inside = compare(left->right, right->left); return outside && Inside; } } };
为什么要引出高度呢?
class Solution { public: int GetHi(TreeNode* node){ if(node==NULL) return 0; else return 1+max(GetHi(node->left),GetHi(node->right)); } int maxDepth(TreeNode* root) { return GetHi(root); } };
浙公网安备 33010602011771号