原题链接在这里:https://leetcode.com/problems/same-tree/
题目:
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.
题解:
树的题目多用递归可以简单地写出来。
终止条件:若左右都为空就return true; 若一个为空另一个不为空 return false; 最后两个都不为空时,值不同return false.
Time Complexity: O(n), n是tree的node数目. Space O(logn).
AC Java:
1 /** 2 * Definition for a binary tree node. 3 * public class TreeNode { 4 * int val; 5 * TreeNode left; 6 * TreeNode right; 7 * TreeNode(int x) { val = x; } 8 * } 9 */ 10 public class Solution { 11 public boolean isSameTree(TreeNode p, TreeNode q) { 12 if(p == null && q == null){ 13 return true; 14 } 15 if(p == null || q == null){ 16 return false; 17 } 18 if(p.val != q.val){ 19 return false; 20 } 21 return isSameTree(p.left,q.left) && isSameTree(p.right,q.right); 22 } 23 }