LeetCode 100.相同的树 C写法
思路🧐:
考察的二叉树遍历,前序遍历看每个值是否相等或者结点仅一端为空,不相等就返回false,相等就递归下去,直到两边结点都走完。前序遍历可以先判断根结点是否相等,效率要更高一点。
代码🔎:
bool isSameTree(struct TreeNode* p, struct TreeNode* q) { if(p == NULL && q == NULL) //两边都为空,就返回true return true; if(p == NULL || q == NULL) //只有一边为空就false return false; if(p->val != q->val) return false; return isSameTree(p->left,q->left) && isSameTree(p->right,q->right); //递归往下走 }