![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer刷题汇总
rodman177
这个作者很懒,什么都没留下…
展开
-
面试题8:二叉树的下一个节点
题目:给定一棵二叉树和其中的一个节点,如何找出中序遍历序列的下一个节点?树中的节点除了有两个分别指向左、右子节点的指针,还有一个指向父节点的指针。如下图所示:这颗二叉树的中序遍历序列是:d,b,h,e,i,a,f,c,g,在本题目中,我们只需考虑三种情况:(1)如果一个节点有右子树,那么它的下一个节点是该节点右子树最左子节点,如上图中的b节点,它的下一个节点即是h;(2)如果一个节点没有...原创 2019-05-01 20:14:52 · 111 阅读 · 0 评论 -
剑指offer:把二叉树打印成多行
题目:把二叉树打印成多行,即每一层打印为一行代码如下://非递归public ArrayList<ArrayList<Integer>> printLevel(TreeNode root){ if(root == null) return null; ArrayList<ArrayList<Integer>> arrs =...原创 2019-05-01 22:42:53 · 152 阅读 · 0 评论 -
剑指offer:把二叉树按照之字形打印
题目:请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。实现代码如下:public static ArrayList<ArrayList<Integer> > PrintByZhi(TreeNode pRoot) { ArrayList<ArrayList<In...转载 2019-05-01 23:43:38 · 82 阅读 · 0 评论 -
剑指offer-面试题34:二叉树中和为某一值的路径
题目:输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)public class TreeNode { int value = 0; TreeNode leftNode = null; TreeNode rightNod...转载 2019-05-02 16:06:41 · 93 阅读 · 0 评论 -
剑指offer-面试题54:二叉搜索树的第K大节点
题目:给定一颗二叉搜索树,请找出其中第K大的节点。核心思想:中序遍历如上图,中序遍历的结果位:2,3,4,5,6,7,8,则在该二叉搜索树中第3大的节点值为4.具体代码如下:public class Solution { int index = 0; TreeNode KthNode(TreeNode pRoot, int k) { if(pRo...原创 2019-05-03 20:29:17 · 289 阅读 · 0 评论 -
剑指offer-面试题36:二叉搜索树与双向链表
题目:输入一颗二叉搜索树,将该二叉搜索树转换称一个排序的双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。在二叉搜索树中,每一个节点都有一个指向其左节点和其右节点的指针,因此我们可以利用这两个指针。将指向其左节点的指针调整为链表中指向前一个节点的指针,将其指向右节点的指针调整为链表中指向后一个节点的指针。并且由于要求转换后的链表有序,因此我们可以采用二叉搜索树的中序遍历,然后对其指...原创 2019-05-03 20:57:16 · 239 阅读 · 0 评论