publicstaticvoidreverse(HeroNode head){
HeroNode p = head.next.next;
HeroNode n = p.next;int count =0;// 如果链表只有一个节点就不用反转if(p==null)return;while(p != null){// 将两个节点之间的指向反转
p.next = head.next;// 如果遍历的第一个节点的next不设置空的话,打印时前两个节点就会死循环if(count ==0){
p.next.next = null;
count =1;}// 头节点移动
head.next = p;
p = n;if(n == null)break;
n = p.next;}}
其他(创增删改…)
获取单链表的节点个数
publicstaticintgetLength(HeroNode head){
HeroNode p = head.next;int count =0;while(p != null){
count++;
p = p.next;}return count;}
获取单链表中的倒数第k个节点
publicstatic HeroNode getNodeK(HeroNode head,int k){if(head.next == null){
System.out.println("空链表");return null;}int num =getLength(head);//有效节点个数
HeroNode p = head.next;for(int i =0; i < num - k; i++)
p = p.next;return p;}
创建节点
classHeroNode{int no;
String name;public HeroNode next;publicHeroNode(int no, String name){this.no = no;this.name = name;}@Overridepublic String toString(){return"HeroNode{"+"no="+ no +", name='"+ name +'\''+'}';}}
创建单链表及链表上的一些操作
classLinkedList{private HeroNode head;//头结点public HeroNode getHead(){return head;}publicLinkedList(){
head =newHeroNode(0,"");}// 不按编号创建publicvoidadd(HeroNode node){// 找到尾节点// 创建一个辅助节点
HeroNode p = head;while(p.next != null){
p = p.next;}// 插入
p.next = node;}// 按编号顺序插入publicvoidaddByOrder(HeroNode node){
HeroNode p = head;boolean flag =false;while(true){if(p.next == null){break;}elseif(p.next.no > node.no){
flag =true;break;}
p = p.next;}if(flag){
node.next = p.next;
p.next = node;}else{
p.next = node;}}// 根据编号修改名字publicvoidmodify(HeroNode node){
HeroNode p = head.next;while(p != null){if(p.no == node.no)break;
p = p.next;}if(p == null){
System.out.println("没有找到该节点");}else{
p.name = node.name;}}// 按编号删除节点publicvoiddelete(int aim){
HeroNode p = head;boolean flag =false;while(true){if(p.next == null){break;}elseif(p.next.no == aim){
flag =true;break;}
p = p.next;}if(flag){
p.next = p.next.next;}else{
System.out.println("没有找到此编号的节点");}}// 展示链表publicvoidshow(){if(head.next == null)return;// 创建一个辅助节点
HeroNode p = head.next;// 遍历while(true){
System.out.println(p);
p = p.next;if(p == null)break;}}}