(30) 如何对给定二叉树执行前序遍历?
- 解决方案:http://javarevisited.blogspot.sg/2016/07/binary-tree-preorder-traversal-in-java-using-recursion-iteration-example.html#axzz5ArdIFI7y
(31) 如何在没有递归的情况下对给定二叉树执行前序遍历?
- 解决方案:http://www.java67.com/2016/07/binary-tree-preorder-traversal-in-java-without-recursion.html
(32) 如何对给定二叉树执行中序遍历?
- 解决方案:http://www.java67.com/2016/08/binary-tree-inorder-traversal-in-java.html
(33) 如何在没有递归的情况下通过对给定二叉树执行中序遍历来打印所有节点?
- 解决方案:http://www.java67.com/2016/08/binary-tree-inorder-traversal-in-java.html
(34) 如何实现后序遍历算法?
- 解决方案:http://www.java67.com/2016/10/binary-tree-post-order-traversal-in.html
(35) 如何在没有递归的情况下对给定二叉树执行后序遍历?
- 解决方案:http://www.java67.com/2017/05/binary-tree-post-order-traversal-in-java-without-recursion.html
(36) 如何打印二叉搜索树的所有叶节点?
- 解决方案:http://www.java67.com/2016/09/how-to-print-all-leaf-nodes-of-binary-tree-in-java.html
(37) 如何计算给定二叉树中叶节点的数量?
- 解决方案:http://javarevisited.blogspot.sg/2016/12/how-to-count-number-of-leaf-nodes-in-java-recursive-iterative-algorithm.html
(38) 如何在给定数组中执行二元搜索?
- 解决方案:http://javarevisited.blogspot.sg/2015/10/how-to-implement-binary-search-tree-in-java-example.html#axzz4wnEtnNB3
如果你认为自己对二叉树编程的了解不足,无法解决这些问题,我建议你先熟练掌握数据结构和算法知识,比如你可以上这门课《From 0 to 1: Data Structures & Algorithms in Java》。同样,你也可以查阅准备 Google 面试的一套完整手册,这套 GitHub 手册前面已经介绍了,但它在二叉树等数据结构上真的有非常多的案例与教程。
项目地址:https://github.com/jwasham/coding-interview-university

如果你需要更多推荐,可以参考:
- http://javarevisited.blogspot.sg/2015/07/5-data-structure-and-algorithm-books-best-must-read.html
- http://javarevisited.blogspot.sg/2018/01/top-5-free-data-structure-and-algorithm-courses-java—c-programmers.html
5. 其它编程面试问题
除了数据结构方面的问题,大部分编程工作面试也会问关于算法、设计、位运算和通用的逻辑问题。
针对性练习很重要,因为有时在实际面试中它们会有点难解。事先练习不仅能够让你熟悉这些问题,还能让你在向面试官解释答案时更加自信。
(39) 如何实现冒泡排序算法(bubble sort algorithm)?
- 解决方案:http://javarevisited.blogspot.sg/2014/08/bubble-sort-algorithm-in-java-with.html#axzz5ArdIFI7y
(40) 如何实现迭代快速排序算法(iterative quicksort algorithm)?
- 解决方案:http://javarevisited.blogspot.sg/2016/09/iterative-quicksort-example-in-java-without-recursion.html#axzz5ArdIFI7y
(41) 如何实现插入排序算法(insertion sort algorithm)?
- 解决方案:http://www.java67.com/2014/09/insertion-sort-in-java-with-example.html
(42) 如何实现归并排序算法(merge sort algorithm)?
- 解决方案:http://www.java67.com/2018/03/mergesort-in-java-algorithm-example-and.html
(43) 如何实现桶排序算法(bucket sort algorithm)?
- 解决方案:http://javarevisited.blogspot.sg/2017/01/bucket-sort-in-java-with-example.html
(44) 如何实现计数排序算法(counting sort algorithm)?
- 解决方案:http://www.java67.com/2017/06/counting-sort-in-java-example.html
(45) 如何实现基数排序算法(radix sort algorithm)?
- 解决方案:http://www.java67.com/2018/03/how-to-implement-radix-sort-in-java.html
(46) 如何在不使用第三个变量的前提下交换两个数字?
- 解决方案:http://www.java67.com/2015/08/how-to-swap-two-integers-without-using.html
(47) 如何确认两个矩形是否重叠?
- 解决方案:http://javarevisited.blogspot.sg/2016/10/how-to-check-if-two-rectangle-overlap-in-java-algorithm.html
(48) 如何设计自动贩卖机?
- 解决方案:http://javarevisited.blogspot.sg/2016/06/design-vending-machine-in-java.html
如果你想查看更多此类编程问题,可以阅读这本书《Cracking the Coding Interview: 189 Programming Questions and Solutions》,适合短时间内准备编程工作面试。 (编辑:威海站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|