1. Question
给定两个二叉树,判断是不是相同(结构相同,值相同)的树。
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.
2. Solution
考虑特殊情况:
- 树为空:都为空,某个为空
采用分支法解决:
- 顶点相同
- 左子树相同
- 右子树相同
/** * 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 && p.val==q.val ) return isSameTree(p.left, q.left) && isSameTree(p.right, q.right); return false; } }