Java校招面试 G歌面试官亲授

列表
数组

链表

队列,栈


二叉树

搜索树

堆/优先队列

栈/队列/优先队列
push(1);push(3);push(2);pop();pop();pop();
栈:2;3;1
队列:1;3;2
优先队列:1;2;3
Map<K,V>/Set<K>
HashMap/HashSet → K.hashCode()

TreeMap/TreeSet → K implements Comparable


无向图
有向图
有向无环图

图的算法
深度优先遍历
广度优先遍历
拓扑排序
最短路径/最小生成树

6--15 树
有关树的面试题?
容易理解?难度大
综合性强
二叉树的遍历
前序遍历
中序遍历
后序遍历
层次遍历
如何进行前序遍历
先遍历树根

然后前序遍历左子树

再前序遍历右子树

// 手动创建一个二叉树
public class TreeCreator {
public TreeNode createSampleTree() {
TreeNode root = new TreeNode(‘A‘);
root.setLeft(new TreeNode(‘B‘));
root.getLeft().setLeft(new TreeNode(‘D‘));
root.getLeft().setRight(new TreeNode(‘E‘));
root.getLeft().getRight().setLeft(new TreeNode(‘G‘));
root.setRight(new TreeNode(‘C‘));
root.getRight().setRight(new TreeNode(‘F‘));
return root;
}
}

public class TreeTraversal {

//前序遍历
public void preOrder(TreeNode root) {
if (root == null) {
return;
}
System.out.print(root.getValue());
preOrder(root.getLeft());
preOrder(root.getRight());
}

//中序遍历
public void inOrder(TreeNode root) {
if (root == null) {
return;
}
inOrder(root.getLeft());
System.out.print(root.getValue());
inOrder(root.getRight());
}

//后序遍历
public void postOrder(TreeNode root) {
if (root == null) {
return;
}
postOrder(root.getLeft());
postOrder(root.getRight());
System.out.print(root.getValue());
}
}
public static void main(String[] args) {
TreeCreator creator = new TreeCreator();
TreeTraversal traversal = new TreeTraversal();

System.out.println("Sample tree traversal");
System.out.println("=====");
TreeNode sampleTree = creator.createSampleTree();
traversal.preOrder(sampleTree);
System.out.println();
traversal.inOrder(sampleTree);
System.out.println();
traversal.postOrder(sampleTree);
System.out.println();

System.out.println("=====");
}
Sample tree traversal
=====
ABDEGCF
DBGEACF
DGEBFCA
=====

原文地址:https://www.cnblogs.com/itpy/p/11825981.html

时间: 2024-08-30 04:13:20

Java校招面试 G歌面试官亲授的相关文章

Google面试官亲授 升级Java面试

第1章 课程引言校招主要考察的是基础知识和编程能力,介绍校招总体大致录取率.详细介绍本课程的学习目标,课程安排,最后演示谷歌在线笔试. 第2章 操作系统本章从操作系统最常见的问题,进程vs线程入手,讲解其内存结构.讲解存储的层次结构和虚拟内存的概念,以及如何在虚拟内存中进行寻址. 第3章 网 络本章首先介绍网络多层架构背后的思想方法和其各自解决的问题.然后详细介绍TCP协议中的核心:滑动窗口协议及其背后动机.最后通过对一个HTTP请求的抓包进行实战分析,展示滑动窗口协议真实的工作过程,并且涉及包

Java程序员如何在面试时短时间内让面试官刮目相看?

前言 技术面试是每一位程序员都会经历的一件事情,技术面试官会通过自己的方式去考察程序员的技术功底与基础理论知识,这个过程被有的程序员成为"造火箭式的技术轰炸",不同程序员的面试经历与体验也是千差万别,各种奇怪,奇葩的情况也是层出不穷. 而很多Java程序员在面试时都有这样的苦衷: 我掌握了很多Java开发技巧,每次到笔试环节,死活就是答不上: 明明是一个职场老手,和面试官聊天,简单的技术问题都吞吞吐吐: Java程序员如何在面试时短时间内爆出核心技术?让对面的"不速之客&qu

JAVA多线程和并发基础面试问答【转】

JAVA多线程和并发基础面试问答 多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一.在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题.(校对注:非常赞同这个观点) Java多线程面试问题 1. 进程和线程之间有什么不同? 一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用.而线程是在进程中执行的一个任务.Java运行环境是一个包含了不同的类和程序的单 一进程.线程可以被称为轻量

17、JAVA多线程和并发基础面试问答

JAVA多线程和并发基础面试问答 原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-answers/ 多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一.在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题.(校对注:非常赞同这个观点) Java多线程面试问题 1. 进程和线程之间有什么不同? 一个进程是一个独立(se

[转] JAVA多线程和并发基础面试问答

JAVA多线程和并发基础面试问答 原文链接:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-answers/ 多线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一.在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题.(校对注:非常赞同这个观点) Java多线程面试问题 1. 进程和线程之间有什么不同? 一个进程是一个独立(se

jvm--深入理解java虚拟机 精华总结(面试)(转)

深入理解java虚拟机 精华总结(面试)(转) 一.运行时数据区域 3 1.1 程序计数器 3 1.2 Java虚拟机栈 3 1.3 本地方法栈 3 1.4 Java堆 3 1.5 方法区 3 1.6 运行时常量池 4 二. hotspot虚拟机对象 4 2.1 对象的创建 4 检查 4 分配内存 4 Init 4 2.2 对象的内存布局 4 2.3 对象的访问定位 4 使用句柄访问 4 使用直接指针访问 5 三. OutOfMemoryError 异常 5 3.1 Java堆溢出 5 3.2

BAT大牛亲授技能 技巧 Android面试快速充电升级

第1章 课程介绍(本课程专为初中级同学面试复习)本课程专为初中级程度同学面试准备的系统复习指南,本章带你了解面试过程中会遇到的问题,个人应该摆正的心态,以及面试官最为看重你的解决问题的思路.关于框架面试专题课程请移步到:http://coding.imooc.com/class/157.html1-1 课程介绍 第2章 Android开发岗位技术要求和面试前的准备本章对各个级别Android开发工程师的招聘需求进行深入分析,并带大家清晰完整的了解面试复习与准备思路,做到有的放矢,有侧重点的进行复

腾讯Java程序员第二轮面试11个问题,你会几个?

此前,分享了阿里巴巴.网易.百度等多家名企的JAVA面试题. 这也引来了不少程序员网友们的围观. 其中,也有相当一部分网友是已经从事Java开发好多年的程序员,当他们阅读完JAVA面试题的反应是:一个也不会. 通常这种类型的程序员已经将编程转换成了一种技能,而不是在脑海里的知识. 有人认为,面试造火箭,进去拧螺丝. 当然,也有中途放弃编程的程序员,Java从入门到放弃. 但无论如何,编程这条路总是有人在走. 也只有一种人在编程界可以混得风生水起:对编程感兴趣,能够把编程做到极致的人. 下面我给程

Java大牛呕心沥血经历——技术面试与HR谈薪资技巧

作为"生在红旗下,长在春风里"的"四有新人",笔者从毕业至今,与各路 HR.HRD 斗智斗勇,再加上自己的不懈努力,历尽千辛万苦终于将毕业时的 1500 每月的薪资提高了二十几倍.本文就和大家唠唠这些年风里来雨里去无数次铩羽而归.兢兢业业.如履薄冰.诚惶诚恐.夜不能寐.枕戈待旦.惴惴不安.临盆一脚,最终守得云开见月明的谈薪经历.当然,本文说的主要是技术面试中谈薪的经历,主要针对的是一些社会人士求职,当然一些通用的原则同样适用于应届生求职. 面试官的级别 一般技术面试