摘要: (判断是否有从根到叶子节点的路径,其和为给定值。记录这些路径。) 我的方法:这道题我是按照回溯的思路去做的,我们需要一个数据结构来保存和删除当前递归函数中添加的值。这里要打印一条路径,我们可以选择List、栈等,它们都可以很方便的删除掉末尾的元素从而保护现场,也可以选择String,只需要在进入递归 阅读全文
posted @ 2019-10-09 10:46 CrazyJack 阅读(233) 评论(0) 推荐(0) 编辑
摘要: (判断一个元素均不相同的序列是否为一个BST的LRD) 书中方法:首先 对于二叉搜索树,左子树中的所有元素小于根节点小于右子树中的所有元素,然后后序遍历序列最后一个元素是根节点,这是我们已知的条件 。这道题不禁让人想起用一个普通二叉树的前序(或后序)遍历序列加上中序遍历序列就可以还原一棵二叉树,在那 阅读全文
posted @ 2019-10-09 10:44 CrazyJack 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 注意层序遍历的时候对每一层的处理方式可能不同,这里把每一层的元素保存进一个List中了,那么就需要记录每一层的数量。 public List search(TreeNode root){ List result = new ArrayList (); Queue queue = new Linked 阅读全文
posted @ 2019-10-09 10:34 CrazyJack 阅读(106) 评论(0) 推荐(0) 编辑
摘要: (输入两个整数序列,第一个序列是一串数字的压入顺序,判断第二个序列是否是该栈数字的弹出顺序。) 我的方法:压入序列是给定的,每一次弹出操作形成一个弹出序列的值,我们从前往后遍历弹出序列,每一次访问弹出序列都代表了一次弹出操作,弹出的值必然是当前栈顶的元素或者是在剩余没有压入的元素序列中。 我们要做的 阅读全文
posted @ 2019-10-09 10:27 CrazyJack 阅读(126) 评论(0) 推荐(0) 编辑
摘要: (min函数的作用是返回栈内最小值) 首先这个栈要具有普通栈所具有的push()和pop()方法,那么内部一定包含一个Stack。至于还要能实现min函数,而且还是在O(1)时间复杂度内,我们不得不考虑用额外的空间。 如果直接使用一个int变量存储当前的最小值,我们的确可以获得最小值,但是当 栈po 阅读全文
posted @ 2019-10-09 10:17 CrazyJack 阅读(127) 评论(0) 推荐(0) 编辑