LeetCode 101 對稱二叉樹 / symmetric tree

題目描述:


解題思路:此題和上題有點類似,同樣遞歸解決,isSymmetry(TreeNode * p,TreeNode * q) 表示如果以p的  以右孩子爲根的子樹  和  q的  以左孩子爲根的子樹對稱並且 p的  以左孩子爲根的子樹 和 q的  以右孩子爲根的子樹對稱,那麼以p爲根的子樹和以q爲根的子樹對稱。

代碼如下:

class Solution {
public:
    bool isSymmetric(TreeNode * root) {
        if(root == NULL) return true; //注意判空樹情況,不然會報錯
        if(isSymmetry(root -> left,root -> right) == true) return true;
        return false;
    }
private:
    bool isSymmetry(TreeNode * p,TreeNode * q){
        if(p == NULL && q == NULL) return true;
        if(p == NULL || q == NULL) return false;
        if(p -> val != q -> val) return false;
        if(isSymmetry(p -> left,q -> right) && isSymmetry(p -> right,q -> left)) return true;
        return false;
    }
};

發佈了27 篇原創文章 · 獲贊 6 · 訪問量 2980
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章