入坑LeetCode: 101. Symmetric Tree

入坑LeetCode: 101. Symmetric Tree

1、解題思路

判斷一棵二叉樹是否對稱,其實就是遞歸判斷,層層判斷,將左二子與右兒子比較,將左二子的右兒子與右兒子的左二子比較,如果始終相同,則返回true。

2、代碼

bool isymmetric(struct TreeNode* left,struct TreeNode* right){
    if(left == NULL && right == NULL) return true;
    if(left == NULL || right ==NULL) return false;
    if(left->val != right->val) return false;
    
    return isymmetric(left->left,right->right) && isymmetric(left->right,right->left);
}
bool isSymmetric(struct TreeNode* root) {
    if(root == NULL) return true;
    
    return isymmetric(root->left,root->right);
}

3、踩過的坑

1、由於剛剛進入碼農的世界,第一次刷LeetCode的題,之前都是在浙大PAT上刷的題,完全不知道這個是網站已經集成好了其它輸入輸出語句,只需要關注於算法本身即可,一開始還有點懵逼
2、一開始看了下別人的解答,函數裏傳的參數直接是用的結構體變量不是結構體變量指針,而我照着使用會報錯無法和空值NULL比較,百度了一下,確實是結構體指針纔可直接和NULL比較,結構變量已經分配了內存,是存在了的
3、在LeetCode裏自己聲明定義的函數貌似要寫在默認的函數前面,否則報錯函數未聲明
4、調用結構體內部的成員時不知爲何使用".“調用就是不行,必須要用”->"

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章