- 博客(4)
- 收藏
- 关注
原创 剑指Offer 面试题34:二叉树中和为某一值的路径 Java代码实现
题目:输入一棵二叉树和整数,打印出二叉树中节点值得和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。解题思路:路径从根节点开始,应该用类似于前序遍历的方式访问树节点。我们需要整个路径,就需要一个容器保存经过路径上的节点,以及一个变量记录当前已有节点元素的和。当前序遍历到某一个节点时,添加该节点到路径,累加节点值。如果该节点为叶子节点并节点值累计等于目标整数,则找
2018-01-11 21:09:58 1300 2
原创 剑指Offer 面试题33:二叉搜索树的后序遍历序列 Java代码实现
题目:输入一个整数数组,判断该数组是不是某个二叉搜索树的后序遍历序列。假设数组的任意两个数字都不相同。解题思路:这里是二叉搜索树,其左子树应该都小于根节点,右子树则都大于根节点。在后续遍历序列中,最后一个数字是根节点,我们根据最后一个数字可以把数组剩余部分按顺序分成两块,小于该数字的以及剩下的。小于该数字的是其左子树的后序遍历序列,另一部分应该是其右子树的后序遍历序列。然后判断这剩余部分也就是
2018-01-11 20:49:51 175
原创 剑指Offer 面试题32:从上到下打印二叉树 Java代码实现
题目一:不分行从上到下打印二叉树解题思路:这其实就是二叉树的层次遍历,树的其他几种遍历方式容易用递归或者借助栈结构实现遍历。分析层次遍历的顺序,不难发现这儿可以借助一个队列作为辅助容器实现层次遍历。具体代码如下:// 层次遍历打印二叉树 public ArrayList printFromTopToButtom(TreeNode root) { ArrayList list = ne
2018-01-11 20:30:12 908
原创 剑指Offer 面试题31:栈的压入、弹出序列 Java代码实现
题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。解题思路:判断一个序列是不是栈的弹出顺序的规律:如果下一个弹出的数字刚好是栈顶数字,那么直接弹出。如果下一个弹出的数字不在栈顶,我们把压栈序列中还没有入栈的数字压入辅助栈,知道把下一个需要弹出的数字压入栈顶为止。如果所有的数字都压入栈了仍没有找到下一个弹出的数字,那么该序列不
2018-01-11 20:21:26 218
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人