相同的树.
题目描述
题目链接
给你两棵二叉树的根节点 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
思路
递归
终止条件有三个:1.left和right都不为空时,返回true。2.其中一个为空一个不为空。3.left.val != right.val,返回false。
代码实现
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val = val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val = val;* this.left = left;* this.right = right;* }* }*/
class Solution {public boolean isSameTree(TreeNode p, TreeNode q) {if(p == null && q == null) return true;//有一个不为null,一个为nullif(p == null || q == null) return false;//两个都有值判断if(p.val != q.val) return false;return isSameTree(p.left,q.left) && isSameTree(p.right,q.right);}
}
更多推荐
相同的树.
发布评论