Leetcode 101. 对称二叉树 解题思路及C++实现
生活随笔
收集整理的這篇文章主要介紹了
Leetcode 101. 对称二叉树 解题思路及C++实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
方法一:遞歸
解題思路:
先判斷當前根結點root是否為null,如果是,則返回true;
然后調用isSame函數,判斷其左右節點是否滿足對稱要求;
在isSame函數中,核心思想在于遞歸比較 r1->left == r2->right 與r1->right == r2->left。
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/ class Solution { public:bool isSymmetric(TreeNode* root) {if(!root) return true;else return isSame(root->left, root->right);}bool isSame(TreeNode* r1, TreeNode* r2){if(!r1 || !r2) return r1 == r2;else{return (r1->val == r2->val) && isSame(r1->left, r2->right) && isSame(r1->right, r2->left);}} };?
?
?
總結
以上是生活随笔為你收集整理的Leetcode 101. 对称二叉树 解题思路及C++实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Leetcode 100. 相同的树 解
- 下一篇: Leetcode 104. 二叉树的最大