在树的的很多应用中,都运用到了递归的思想,这道题同样也是,但同时也可以用迭代的思路去做。
递归的关键就是找到 递归终止条件、将问题分解为解决逻辑相同的子问题来解决。
public class Solution {
public bool IsSameTree(TreeNode p, TreeNode q) {
if (p == null && q == null)
return true;
//if ((p != null && q == null) || (p == null && q != null)) 这句代码可以优化一下,使之更简洁
if (p == null || q == null)
return false;
if (p.val != q.val)
return false;
if (IsSameTree(p.left, q.left))
return (IsSameTree(p.right, q.right));
return false;
}
}