创研科技网站,网站相对路径和绝对路径,导柱导套网站建设,网站主题如何制作1. 题目
给定两个二叉树#xff0c;编写一个函数来检验它们是否相同。
如果两个树在结构上相同#xff0c;并且节点具有相同的值#xff0c;则认为它们是相同的。
2. 解题
2.1 递归 class Solution {
public:bool isSameTree(TreeNode* p, TreeNode* q) {if(!p 编写一个函数来检验它们是否相同。
如果两个树在结构上相同并且节点具有相同的值则认为它们是相同的。
2. 解题
2.1 递归 class Solution {
public:bool isSameTree(TreeNode* p, TreeNode* q) {if(!p !q)return true;bool ans true;same(p,q,ans);return ans;}void same(TreeNode* r1, TreeNode* r2, bool ans) {if(ans false)return;if(!r1 !r2){ans true;return;}if(r1 r2 r1-val r2-val){same(r1-left,r2-left,ans);same(r1-right,r2-right,ans);}elseans false;}
};2.2 按层遍历 class Solution {
public:bool isSameTree(TreeNode* p, TreeNode* q) {if(!p !q)return true;if((p !q)||(!p q))return false;queueTreeNode* q1, q2;q1.push(p),q2.push(q);while(1){if(q1.front()-val ! q2.front()-val){return false;}if(q1.front()-left q2.front()-left)q1.push(q1.front()-left),q2.push(q2.front()-left);else if((q1.front()-left !q2.front()-left)||(!q1.front()-left q2.front()-left))return false;if(q1.front()-right q2.front()-right)q1.push(q1.front()-right),q2.push(q2.front()-right);else if((q1.front()-right !q2.front()-right)||(!q1.front()-right q2.front()-right))return false;q1.pop(),q2.pop();if((q1.empty()!q2.empty())||(!q1.empty()q2.empty()))return false;if(q1.empty()q2.empty())return true;}return true;}
};