一雪前耻,抱着试试看的态度,打开了《Same Tree》,本来是想,首先判断

两颗树的各个相同位置得结点值是否相同,然后判断两颗树得结构是否相似得,

但是后来一想,如果两颗树得结构不同的话,那相同结点得值肯定就会不一样啦,

所以,先序遍历二叉数,一旦遇到结点值不相等,就直接pass了,但是一定要注意一些特殊情况,

(我会在代码中指出)还是那句话,

“想奋斗,什么时候也不晚!!!”,与君共勉!


代码实现:

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;     } };