摘要: 1.本题是典型的后序遍历,因为要自底向上推出结果。 2.思考递归函数的定义:traverse函数的定义就是返回当前节点的子树是否包含节点p、q其中的一个。 3.当前节点应该做什么:(1)如果root为空,返回false,很合理。(2)保存左子树、右子树的结果。(3)什么情况下得到结果?a.左子树和右 阅读全文
posted @ 2021-12-08 20:08 开心码码乐 阅读(31) 评论(0) 推荐(0)
摘要: res是什么?是树的根节点集合。 为什么res可以写在递归函数里,而不是声明为全局变量?res存的是每一层的结果,每一层的结果最后会return给上层节点,所以res其实相当于临时变量。 为什么递归可以算出结果?对根节点从1到n循环:循环内部递归算出根节点左右两边子树的二叉搜索树,再把这个结果排列组 阅读全文
posted @ 2021-12-05 23:10 开心码码乐 阅读(47) 评论(0) 推荐(0)
摘要: 本题要立足于一个节点,思考当前节点需要做的事情。当前节点需要做的事情无非就是:判断其左右子树是否对称。具体的判断方法如下: 1.若左子树为空,右子树不空,则不对称。 2.若左子树不空,右子树为空,则不对称。 3.若左右子树的值不相等,则不对称。 4.若左右子树都为空,则对称。 5.接下来递归判断左子 阅读全文
posted @ 2021-11-28 15:40 开心码码乐 阅读(25) 评论(0) 推荐(0)