一雪前耻,抱着试试看的态度,打开了《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; } };