将二叉树结点放进队列方便层序遍历等操作
TreeNode.java
/**
* @Description: This is BinaryTreeNode
* @author: HardyDragon
* @date: 2021/4/23 10:52
*/
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode() {
}
TreeNode(int val) {
this.val = val;
}
TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
}
Main.java
import java.util.LinkedList;
import java.util.Queue;
/**
* @Description: TODO
* @author: HardyDragon
* @date: 2021/4/23 11:36
*/
public class Main {
public static void main(String[] args) {
// Queue 接口继承了 Collection 接口, LinkedList 类 实现了 List 接口,
// List 接口也继承了 Collection 接口。
Queue<TreeNode> queue = new LinkedList<>();
queue.add(new TreeNode(66, null, null));
// poll 出队 ; peek 查看队头(一般是描述 stack 栈用的)
System.out.println(queue.peek().val);
System.out.println(queue.poll().val);
System.out.println(queue.poll());
}
}
result:
66
66
null
Queue Interface
Queue 继承了 Collection 接口
public interface Queue<E> extends Collection<E> {
boolean add(E var1);
boolean offer(E var1);
E remove();
E poll();
E element();
E peek();
}
Queue 中 add() 和 offer()都是用来向队列添加一个元素。
在容量已满的情况下,add() 方法会抛出IllegalStateException异常,offer() 方法只会返回 false 。
poll 出队,poll遇到null会返回null;
remove() 去除当前元素,遇到null会报异常
element() 和 peek() 获取队列第一个元素,不删除;
peek遇到null会返回null,element 遇到null 会 NoSuchElementException 异常
操作时候不要异常就用poll 、peek、offer
LinkedList 类 继承了 AbstractSequentialList 并实现了4个接口,其中包括了List接口
public class LinkedList<E> extends AbstractSequentialList<E>
implements List<E>, Deque<E>, Cloneable, Serializable {
List 接口 也继承了 Collection 接口
public interface List<E> extends Collection<E>{
Collection 继承了 Iterable 接口
public interface Collection<E> extends Iterable<E> {
Collection 的方法有如下
Iterable 接口的方法有
IDEA小技巧:
sout是快速 System.out.println() 的快捷键;
ctrl + 鼠标左键看源码
ctrl + alt + L 快速格式化代码
ctrl + alt + v 自动生成变量名