【LeetCode】100. 相同的树

xiaoxiao2025-08-13  36

题目链接:https://leetcode-cn.com/problems/same-tree/description/

题目描述

给定两个二叉树,编写一个函数来检验它们是否相同。

如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

示例1

输入: 1 1 / \ / 2 3 2 3

[1,2,3], [1,2,3]

输出: true

示例2

输入: 1 1 / \ / 2 1 1 2

[1,2,1], [1,1,2]

输出: false

解决方法

递归算法 1.判断两个二叉树是否为空,若均为空则返回true,若只有一个为空则返回false 2.两个二叉树均不为空。 如果根节点具有相同的值并且根的左子树是相同的(递归)和根的右子树是相同的(递归)返回true,否则返回false。

class Solution { public: bool isSameTree(TreeNode* p, TreeNode* q) { if (!p && !q) return true; //两棵树都为空返回true if ((p && !q) || (!p && q)) return false; //只有一棵树为空返回false if (p->val==q->val && isSameTree(p->left,q->left) && isSameTree(p->right,q->right)) return true; //节点值相同,且左右子树都相同 else return false; } };
转载请注明原文地址: https://www.6miu.com/read-5034785.html

最新回复(0)