packageday_0324;importjava.util.Scanner;importjava.util.Stack;classListNode
{intval;
ListNode next;public ListNode(intval)
{this.val=val;
}
}public classListNodeTest
{public static voidmain(String[] args)
{//railInsertCreatList(scanner);
headInsertCreateList();
}/*** 头插法建立单链表
*@paramscanner*/
private static voidheadInsertCreateList()
{
Scanner scanner=newScanner(System.in);while(scanner.hasNext())
{
ListNode head=new ListNode(-1);
head.next=null;//head为头结点,无意义
String str=scanner.nextLine();
String[] temp=str.split(" ");for(int i=0;i
{
ListNode node=newListNode(Integer.valueOf(temp[i]));
node.next=head.next;
head.next=node;
}
ListNode p=head.next;while(p!=null)
{
System.out.println(p.val);
p=p.next;
}
}
scanner.close();
}/*** 尾插法建立单链表
*@paramscanner*/@SuppressWarnings("unused")private static voidrailInsertCreatList()
{
Scanner scanner=newScanner(System.in);while(scanner.hasNext())
{
ListNode head=new ListNode(-1);
head.next=null;
ListNode r=head;
String str=scanner.nextLine();
String[] temp=str.split(" ");for(int i=0;i
{
ListNode node=newListNode(Integer.valueOf(temp[i]));
r.next=node;
r=node;
}
r.next=null;
ListNode p=head.next;while(p!=null)
{
System.out.println(p.val);
p=p.next;
}
}
scanner.close();
}/*** 递归方法逆序打印单链表
*@paramhead*/
public static voidprintListReverse1(ListNode head)
{if(head!=null)
{if(head.next!=null)
{
printListReverse1(head.next);
}
}
System.out.println(head.val);
}/*** 使用栈逆序打印单链表
*@paramhead*/
public static voidprintListReverse2(ListNode head)
{
Stack stack=new Stack();while(head!=null)
{
stack.push(head.val);
head=head.next;
}while(!stack.isEmpty())
{
System.out.println(stack.pop());
}
}
}