20191218——第一百题 相同的树
以后的代码要进行注释,方便理解 递归 最简单的策略是递归,首先判断p与q是不是None,然后判断它们的值是否相等,若通过以上判断,则对递归子节点做同样操作。 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { //如果p与q都为空,那么是相同的树 if(p ==null && q ==null){ return true; } //如果p或者q一个为空,另一个不为空,那么一定不是相同的树 if( p == null ||q==null){ return false; } //如果p与q的值不同,那么也一定不是相同的树 if(p.val != q.val){ return false; } return (isSameTree(p.right,q.right)&&isSameTree(p.left,q.left)); } } 时间复杂度是n,n是树的节点,所以每个结点都访问一次。 空间复杂度 :