LeetCode101對稱二叉樹
阿新 • • 發佈:2020-07-26
題目連結
https://leetcode-cn.com/problems/symmetric-tree/
題解
- 我寫的
- 遞迴解法
- 具體方法見程式碼註釋
// Problem: LeetCode 101 // URL: https://leetcode-cn.com/problems/symmetric-tree/ // Tags: Tree Recursion DFS // Difficulty: Easy #include <iostream> using namespace std; struct TreeNode{ int val; TreeNode* left; TreeNode* right; }; class Solution{ private: // 判斷兩個樹s和t是否互相對稱 // 有3個要求: // ①根節點值相等 // ②s的左子樹和t的右子樹互相對稱 // ③s的右子樹和t的左子樹互相對稱 bool isSymmetric(TreeNode* s, TreeNode* t){ if(s==nullptr && t==nullptr) return true; if(s==nullptr || t==nullptr) return false; if(s->val == t->val) return isSymmetric(s->left, t->right) && isSymmetric(s->right, t->left); return false; } public: bool isSymmetric(TreeNode* root) { // 如果該樹為空,則為對稱的 if(root==nullptr) return true; // 左子樹和右子樹對稱 return isSymmetric(root->left, root->right); } };
作者:@臭鹹魚
轉載請註明出處:https://www.cnblogs.com/chouxianyu/
歡迎討論和交流!