面试题24. 反转链表
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
package 链表;
public class Solution2 {
public static ListNode reverseList(ListNode head) {
ListNode newHead=null,node;
while (head!=null){
//记录当前的
node = head;
//删除
head = head.next;
//对新的链表做头插法
node.next = newHead;
newHead=node;
}
return newHead;
}
public static void main(String[] args) {
ListNode l1 = new ListNode(1);
ListNode l2 = new ListNode(3);
ListNode l3 = new ListNode(2);
l1.next=l2;
l2.next=l3;
ListNode listNode = reverseList(l1);
while (listNode!=null){
System.out.println(listNode.val);
listNode=listNode.next;
}
}
}
复制