java尾接法与头插法创建链表

用尾接法将ArrayList中的数据生成链表

import java.util.ArrayList;

class ListNode {
   int val;
   ListNode next = null;

   ListNode(int val) {
       this.val = val;
   }
}


public class text {
	public static void main(String [] saa) {
		ListNode p;
		ArrayList<Integer> list=new ArrayList<Integer>();
		list.add(5);
		list.add(1);
		list.add(4);
		list.add(3);
		list.add(7);
		list.add(9);
		list.add(2);
		text obj=new text();
		p=obj.createlist(list);;
		while(p!=null) {
		System.out.println(p.val);
		p=p.next;
		}	
	}
   public ListNode createlist(ArrayList<Integer> list)
   {
       
       ListNode t=null,pHead=null;
       if(list.isEmpty())
           return null;
     
       while(!list.isEmpty()) {
    	   ListNode q=new ListNode(list.get(0));
    	   if(pHead==null) {
    		   t=q;
    		   pHead=t;
    		   list.remove(0);
    	   }
    	   else {
    		   t.next=q;
    		   t=q;
    		   list.remove(0);
    	   }
       }
       t=null;
       return pHead;
   }
}

结果:
5
1
4
3
7
9
2

头插法创建链表

package texts;

import java.util.ArrayList;

class ListNode {
   int val;
   ListNode next = null;

   ListNode(int val) {
       this.val = val;
   }
}


public class text {
	public static void main(String [] saa) {
		ListNode p;
		ArrayList<Integer> list=new ArrayList<Integer>();
		list.add(5);
		list.add(1);
		list.add(4);
		list.add(3);
		list.add(7);
		list.add(9);
		list.add(2);
		text obj=new text();
		p=obj.createlist(list);
		while(p!=null) {
		System.out.println(p.val);
		p=p.next;
		}	
	}
   public ListNode createlist(ArrayList<Integer> list)
   {
       
       ListNode first=null,pHead=new ListNode(-1);
       if(list.isEmpty())
           return null;
     
       while(!list.isEmpty()) {
    	   ListNode q=new ListNode(list.get(0));
    	   if(pHead.next==null) {
    		   first=q;
    		   pHead.next=first;
    		   list.remove(0);
    	   }
    	   else {
    		   q.next=pHead.next;
    		   pHead.next=q;
    		   first=q;
    		   list.remove(0);
    	   }
       }
       first=null;
       return pHead.next;
   }
}

结果:
2
9
7
3
4
1
5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值