本文主要是介绍检查两颗树是否相同,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
给定两个二叉树,编写一个函数来检验它们是否相同。
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
解题思路:
判断每个节点值是否相同。然后判断结点左树是否相同;结点右树是否相同。递归遍历两棵树。
/*** 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 false;else if(p != NULL && q == NULL)return false;else if(p == NULL && q == NULL)return true;else if(p->val != q->val)return false;return isSameTree(p->left,q->left) && isSameTree(p->right,q->right);
}
这篇关于检查两颗树是否相同的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!