目次
2 つのバイナリ ツリーのルート ノードの合計が与えられた場合
p
、q
2 つのツリーが同じかどうかをテストする関数を作成します。2 つのツリーは、構造的に同一であり、同じ値のノードを持つ場合、同一とみなされます。
例 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ヒント:
- 両方のツリーのノード数が 範囲
[0, 100]
内にあります-104 <= Node.val <= 104
コード:
/** * 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; if(p==null||q==null||p.val!=q.val) return false; // 不然就继续往下递归 return isSameTree(p.left,q.left)&&isSameTree(p.right,q.right); } }
操作結果: