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

来源:互联网 发布:怎么重新注册知乎 编辑:程序博客网 时间:2024/05/29 05:05

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

思路:就地逆转,头插法


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;    }}


0 0