输入一个链表,反转链表后,输出链表的所有元素。就地逆转,头插法

20 篇文章 0 订阅

输入一个链表,反转链表后,输出链表的所有元素。就地逆转,头插法

思路:就地逆转,头插法


package com.mytest.mymain;

/*class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}*/
public class ReverseListNode {
	public static void main(String[] args) {
		ListNode A=new ListNode(1);
		ListNode B=new ListNode(2);
		ListNode C=new ListNode(3);
		ListNode D=new ListNode(4);
		ListNode E=new ListNode(5);
		A.next=B;
		B.next=C;
		C.next=D;
		D.next=E;
		
		ReverseListNode testListNode=new ReverseListNode();
		ListNode ls=testListNode.ReverseList(A);
		System.out.println(ls.next.val);
	}
    public ListNode ReverseList(ListNode head) {
    	if(head==null){
    		return null;
    	}
    	if(head.next==null){
    		return head;
    		}
    	ListNode newhead=head;
    	ListNode p=head.next,q=head.next;
    	
    	newhead.next=null;
    	
    	while(p.next!=null){
    		q=p.next;
    		p.next=newhead;
    		newhead=p;
    		p=q;
    	}
    	p.next=newhead;
    	newhead=p;
    	
    	return newhead;
    }
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值