一、单链表定义
class HeroNode {
public int no;
public String name;
public String nickname;
public HeroNode next;
public HeroNode ( int no, String name, String nickname) {
this . no = no;
this . name = name;
this . nickname = nickname;
}
@Override
public String toString ( ) {
return "HeroNode{" +
"no=" + no +
", name='" + name + '\'' +
", nickname='" + nickname + '\'' +
", next=" + next +
'}' ;
}
}
二、添加节点
public void add ( HeroNode heroNode) {
HeroNode temp = head;
while ( true ) {
if ( temp. next == null) {
break ;
}
temp = temp. next;
}
temp. next = heroNode;
}
三、按照顺序添加节点
public void addByOrder ( HeroNode heroNode) {
HeroNode temp = head;
boolean flag = false ;
while ( true ) {
if ( temp. next == null) {
break ;
}
if ( temp. next. no > heroNode. no) {
break ;
} else if ( temp. next. no == heroNode. no) {
flag = true ;
break ;
}
temp = temp. next;
}
if ( flag) {
System. out. println ( heroNode. no + " cun zai" ) ;
} else {
heroNode. next = temp. next;
temp. next = heroNode;
}
}
四、按照顺序显示链表
public void list ( ) {
if ( head. next == null) {
System. out. println ( "null" ) ;
return ;
}
HeroNode temp = head. next;
while ( true ) {
if ( temp == null) {
break ;
}
System. out. println ( temp) ;
temp = temp. next;
}
}
五、编辑节点
public void update ( HeroNode newHeroNode) {
if ( head. next == null) {
System. out. println ( "LinkedList is null~~" ) ;
return ;
}
HeroNode temp = head. next;
boolean flag = false ;
while ( true ) {
if ( temp == null) {
break ;
}
if ( temp. no == newHeroNode. no) {
flag = true ;
break ;
}
temp = temp. next;
}
if ( flag) {
temp. name = newHeroNode. name;
temp. nickname = newHeroNode. nickname;
} else {
System. out. println ( "no find " + newHeroNode. no) ;
}
}
六、删除节点
public void del ( int no) {
HeroNode temp = head;
boolean flag = false ;
while ( true ) {
if ( temp. next == null) {
break ;
}
if ( temp. next. no == no) {
flag = true ;
break ;
}
temp = temp. next;
}
if ( flag) {
temp. next = temp. next. next;
} else {
System. out. println ( "bu cun zai " + no) ;
}
}
七、定义头结点
private HeroNode head = new HeroNode ( 0 , "" , "" ) ;
八、测试
public static void main ( String[ ] args) {
HeroNode heroNode1 = new HeroNode ( 1 , "1" , "1" ) ;
HeroNode heroNode2 = new HeroNode ( 2 , "2" , "2" ) ;
HeroNode heroNode3 = new HeroNode ( 3 , "3" , "3" ) ;
HeroNode heroNode4 = new HeroNode ( 4 , "4" , "4" ) ;
SingleLinkedList singleLinkedList = new SingleLinkedList ( ) ;
singleLinkedList. addByOrder ( heroNode1) ;
singleLinkedList. addByOrder ( heroNode4) ;
singleLinkedList. addByOrder ( heroNode3) ;
singleLinkedList. addByOrder ( heroNode2) ;
singleLinkedList. addByOrder ( heroNode1) ;
singleLinkedList. list ( ) ;
System. out. println ( ) ;
HeroNode newNode = new HeroNode ( 2 , "22" , "22" ) ;
singleLinkedList. update ( newNode) ;
singleLinkedList. list ( ) ;
singleLinkedList. del ( 1 ) ;
System. out. println ( ) ;
singleLinkedList. list ( ) ;
}