反转链表

输入一个链表,反转链表后,输出链表的所有元素。

循环方法:

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

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Solution {
    public ListNode ReverseList(ListNode head) {
		if(head==null)
            return null;
        ListNode a=null;
        ListNode b=null;
        while(head!=null)
        {
            a=head.next;
            head.next=b;
            b=head;
            head=a;
        }
        return b;
    }
}

递归方法:

public class RevSingleLinkFactory { 
    public static Node reverse1(Node head) {
        if (head ==null ||head.next()==null)  
            return head; 
        Node reversedHead = reverse1(head.next());
        head.next().next(head); 
        head.next(null);
        return reversedHead; 
    }

递归方法还没搞懂

你可能感兴趣的:(反转链表)