100. Same Tree 树是否相同

本文介绍了一种检查两棵二叉树是否完全相同的方法。通过递归比较节点值及子树结构来判断二叉树是否一致。这种方法同样适用于判断一棵树是否与其镜像相等,即101. 对称树问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://leetcode.com/problems/same-tree/


Given two binary trees, write a function to check if they are equal or not.

Two binary trees are considered equal if they are structurally identical and the nodes have the same value.


注意这题其实跟 101. Symmetric Tree 对称树 一样的做法。只不过对称树判断自己跟自己的镜像是否相等。


/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
	bool isSameTree(TreeNode* p, TreeNode* q) {
		if (p ==NULL && q == NULL){
			return true;
		}
		else if (p == NULL || q == NULL){
			return false;
		}
		else if (p->val == q->val){
			return isSameTree(p->left, q->left)&isSameTree(p->right, q->right);//注意这里return 递归,而不是直接return true
		}
		else{
			return false;
		}

	}
};


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值