一雪前恥,抱着試試看的態度,打開了《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; } };