2017年6月15日

二叉搜索树的第k个结点

摘要: 题目 给定一颗二叉搜索树,请找出其中的第k大的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。 分析 按照中序遍历方式,取出第k-1位置上的结点即可 代码 阅读全文

posted @ 2017-06-15 16:18 一个不会coding的girl 阅读(105) 评论(0) 推荐(0) 编辑

按之字形顺序打印二叉树

摘要: 题目 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 分析 使用两个栈去实现。奇数行使用stack1,偶数行使用stack2。 注,使用stack1时,按照左右的顺序存储;使用stack2时,按照右左的 阅读全文

posted @ 2017-06-15 16:06 一个不会coding的girl 阅读(193) 评论(0) 推荐(0) 编辑

把二叉树打印成多行

摘要: 题目 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 分析 用队列从根开始存储,首先判断队列是否为空,若不为空,取出第一个元素,将该元素的左孩子和右孩子(在有的情况下)继续存到队列中,知道队列为空。 注,因为返回的是ArrayList<ArrayList<Integer>>类型,所 阅读全文

posted @ 2017-06-15 15:21 一个不会coding的girl 阅读(191) 评论(0) 推荐(0) 编辑

对称的二叉树

摘要: 题目 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 分析 因为二叉树是对称的,所以将该树自己与自己的递归比较,分为三种情况: (1)当两棵树都为空时,返回true; (2)当只有一颗树为空时,返回false; (3)当两棵树都不为空时 阅读全文

posted @ 2017-06-15 15:01 一个不会coding的girl 阅读(139) 评论(0) 推荐(0) 编辑

导航