读了一段关于链接列表的代码,如下:
public class LinkedList {
Node head = null;
Node tail = null;
int size = 0;
public void add(Object o) {
Node n = new Node(o, null);
if(head == null) {
head = n;
tail = n; //感觉这一行多余。
}
tail.setNext(n);
tail = n;
size ++;
}
public int size() {
return size;
}
}
当新增加节点的时候,用传过来的o对象参数创建一个节点,链接指向空;接着把当前尾巴的下一个指针指向新节点,紧接着把尾巴节点设置成新节点。If语句的目的是处理链接列表第一个节点。
如果这种写法可行,那么If语句内的tail=n;没有必要。
感觉此段代码更应该在If语句后面也加上括号,以便减少重复,并且更加清晰易懂。
public class LinkedList {
Node head = null;
Node tail = null;
int size = 0;
public void add(Object o) {
Node n = new Node(o, null);
if(head == null) { //首节点特例处理。
head = n;
tail = n;
}else { //增加花括号。
tail.setNext(n);
tail = n;
} //花括号增加完毕。
size ++;
}
public int size() {
return size;
}
}