LeetCode -- Same Tree 代碼分析

一雪前恥,抱着試試看的態度,打開了《Same Tree》,原本是想,首先判斷ide

兩顆樹的各個相同位置得結點值是否相同,而後判斷兩顆樹得結構是否類似得,code

可是後來一想,若是兩顆樹得結構不一樣的話,那相同結點得值確定就會不同啦,blog

因此,先序遍歷二叉數,一旦遇到結點值不相等,就直接pass了,可是必定要注意一些特殊狀況,ip

(我會在代碼中指出)仍是那句話,it

「想奮鬥,何時也不晚!!!」,與君共勉!io


代碼實現:class

class Solution { public:     bool isSameTree(TreeNode *p, TreeNode *q)     {         // IMPORTANT: Please reset any member data you declared, as         // the same Solution instance will be reused for each test case.         if (isSameNode(p,q))         {             return true;         }         return false;     }     bool isSameNode(TreeNode *root1,TreeNode *root2)     {         /*              下面得兩點必定要注意,             本人在此處錯了三次!!!             一個字,矬!!!         */                  // 若是兩棵樹都爲空         if (!root1 && !root2)             return true;         // 只有一棵樹爲空         if (!root1 && root2)             return false;         if (root1 && !root2)             return false;                  // 兩棵樹都不爲空         if (root1 -> val == root2 -> val)         {             // 判斷左右子樹是否想等             if (isSameNode(root1 -> left,root2 -> left) && isSameNode(root1 -> right,root2 -> right))                 return true;             return false;         }         return false;     } };
相關文章
相關標籤/搜索