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;     } };
相关文章
相关标签/搜索