您的位置:首页 > 其它

【leetcode】比较两棵二叉树是否相同(Same Tree)

2013-12-23 22:46 543 查看
题目要求如下:

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.
接着递归。。

/**
* Definition for binary tree
* public class TreeNode {
*     int val;
*     TreeNode left;
*     TreeNode right;
*     TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public boolean isSameTree(TreeNode p, TreeNode q) {
if(p==null&&q==null){
return true;
}
if(p==null&&q!=null||q==null&&p!=null||p.val!=q.val){
return false;
}
return isSameTree(p.left,q.left)&&isSameTree(p.right,q.right);
}
}
思路是依次比较两棵树上左子树的各个节点的值时候相同,然后再比较右子树。对于二叉树的遍历中的递归思想,可以参见我之前写的两篇文章。《一段代码让你理解二叉树的递归奥秘》《二叉树的递归遍历以及最大深度的求解(Java)》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: