本文主要是介绍力扣0100——相同的树,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
相同的树
难度:简单
题目描述
给你两棵二叉树的根节点 p
和 q
,编写一个函数来检验这两棵树是否相同。
如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。
示例1
输入: p = [1,2,3], q = [1,2,3]
输出: true
示例2
输入: p = [1,2], q = [1,null,2]
输出: false
示例3
输入: p = [1,2,1], q = [1,1,2]
输出: false
题解
依据题意得,本体需要使用回溯法解题,基本思想就是遍历每个节点之后对比
想法代码
using System.Runtime.Intrinsics.Arm;public class TreeNode
{public int val;public TreeNode left;public TreeNode right;public TreeNode(int val = 0, TreeNode left = null, TreeNode right = null){this.val = val;this.left = left;this.right = right;}
}
class Solution
{public static void Main(String[] args){TreeNode p = new TreeNode(1){left = new TreeNode(2),right = new TreeNode(3)};TreeNode q = new TreeNode(1){left = new TreeNode(2),right = new TreeNode(1)};Solution solution = new Solution();Console.WriteLine(solution.IsSameTree(p,q));}public bool IsSameTree(TreeNode p, TreeNode q){if (p == null && q == null){return true;}if (p == null || q == null){return false;}return p.val == q.val && IsSameTree(p.left,q.left) && IsSameTree(p.right,q.right);}
}
这篇关于力扣0100——相同的树的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!