使用java实现有序的单链表,并且添加一个方法,用于反转链表

本文介绍了如何在Java中创建单链表,包括ListNode类的定义,链表的创建、插入节点以及链表反转的基本操作。通过实例展示了如何维护链表并演示了关键方法如`insert`和`fanzhuan`的使用。

单链表点包含两个域,一个信息域(元素域)和一个链接域。这个链接指向链表中的下一个节点,而最后一个节点的链接域则指向一个空值。

创建单链表

定义当前节点类,在堆内存当中创建节点;

定义数据域以及下一个节点的地址域

链表在main方法中不好维护,因此需要定义一个类来创建链表

package com.qcby;

public class ListNode {
       public int value;
       public ListNode next;
       
       
       public ListNode(int value) {
    	   this.value = value;
       }
}
package com.qcby;

public class demo {
	public static void main(String[] args) {
		LinkList linkList = new LinkList();
			linkList.insert(5);
			linkList.insert(7);
			linkList.insert(8);
			linkList.insert(9);
			linkList.printLink();
			
		
		
	}
}

package com.qcby;

public class LinkList {
	
	ListNode head = null;

	
	//创建链表,链表插入方法
	public void insert(int value) {
		ListNode listNode = new ListNode(value);
		if(head==null) {
			head = listNode;
			return; //注意返回,否则会陷入死循环
		}
		
	
        ListNode tempNode = head;
        while(tempNode.next !=null) {
        	tempNode = tempNode.next;
        }
        tempNode.next = listNode;
}




 //输出
  public void printLink() {
	  ListNode tempNode = head;
	  while(tempNode != null) {
		  System.out.println(tempNode.value);//应先作输出,在执行下一步。
		  tempNode = tempNode.next;
	  }
  } 
}  
 

定义一个游标,让它从前到后进行一下遍历:tempNode = tempNode.next

链表的反转

 //反转
      public void fanzhuan() {
    	  ListNode next = null;
    	  ListNode pre = null;
    	  
    	  while(head!=null) {
    		  next = head.next;
    		  head.next = pre;
    		  pre = head;
    		  head = next;
    	  }
    	  head = pre;
    		  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值