二叉树的递归题目总结

判断二叉树B是否是二叉树A 的子树:

递归,如果不递归写的代码会冗长而且不容易写

(一开始想两个均层次遍历,很复杂没写出来)

递归写法:

首先isSubStructure函数,如果两个节点值相同,就判断以这两个节点为根节点的子树是否结构完全相同,否则,递归调用该函数,判断A的左子树和右子树中是否有B的子结构,如果有就返回true,没有false

其次same函数,用来表示,两个根节点的子树是否是相同的,如果A为空且B不为空,说明A与B不是相同子结构,如果B空了,说明比较完毕,两个是相同的。如果都不是,他们的值不同返回false,值相同,递归返回same(n1.left,n2.left)&&same(n1.right,n2.right)

镜像子树(左右子树反转)

也是递归,不好想


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容