class _List{
private _Node head = new _Node(0, "", "");
public void add(_Node node) {
_Node temp = head;
while (true) {
if (temp.next == null) {//当前的next这个属性是不是null
break;
}
temp = temp.next;//temp等于下一个
}
temp.next = node;
}
public void addByOrder(_Node node) {
_Node temp = head;
boolean flag = false;//这个就是为了标识是不是存在这么个节点 也就是第一个判断
while (temp.next !=null) {
if (temp.next.no > node.no) {
break;
} else if (temp.next.no == node.no) {
flag = true;
System.out.println("已经存在了,不能添加");
break;
}
temp = temp.next;
}
if(!flag){
node.next = temp.next;//因为我们要把next的值替换,要么无法插入。所以要找到next的值来比较
temp.next = node;
}
}
public void show() {
_Node temp = head.next;
while (temp!= null) {
System.out.println(temp);
temp = temp.next;//找到另一个
}
}
}
class _Node{
public int no;
public String name;
public String nickname;
public _Node next;
public _Node(int no, String name, String nickname) {
this.no = no;
this.name = name;
this.nickname = nickname;
}
@Override
public String toString() {
return "_Node{" +
"no=" + no +
", name='" + name + '\'' +
", nickname='" + nickname + '\'' +
'}';
}
链表是一个对象, node又是一个对象。 注意:我们因为我们只能用next 来赋值,所以我们需要找到下一个大于 ,当前插入的节点,这样才可以让大的那个放在当前的后边,如果我们找的是本身,就无法把当前插入之前了。