判断二叉树B是否是二叉树A 的子树:
递归,如果不递归写的代码会冗长而且不容易写
(一开始想两个均层次遍历,很复杂没写出来)
递归写法:
首先isSubStructure函数,如果两个节点值相同,就判断以这两个节点为根节点的子树是否结构完全相同,否则,递归调用该函数,判断A的左子树和右子树中是否有B的子结构,如果有就返回true,没有false
其次same函数,用来表示,两个根节点的子树是否是相同的,如果A为空且B不为空,说明A与B不是相同子结构,如果B空了,说明比较完毕,两个是相同的。如果都不是,他们的值不同返回false,值相同,递归返回same(n1.left,n2.left)&&same(n1.right,n2.right)
镜像子树(左右子树反转)
也是递归,不好想