题目要求(判断两个二叉数是否相等。): Given two binary trees, write a function to check if they are the same or not. Two binary trees are considered the same if they are structurally identical and the nodes have the same value. 思路:与二叉树相关的问题可以用递归的思路来解决,对于这个问题,先判断两棵树的当前节点的值是否相等,如果相等,再判断两棵树的左子树、右子树分别是否相等,当左右子树都相等时(逻辑和关系),可以判断两棵树相等。还要考虑空树的情况,也就是空指针的情况。代码如下。 代码: /** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ bool isSameTree(struct TreeNode* p, struct TreeNode* q) { if(p == NULL || q == NULL){ return (p == q); }else{ if(p->val != q->val){ return false; }else{ return isSameTree(p->left, q->left)&&isSameTree(p->right, q->right); } } }