/**
* 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
*/
public class ReverseList {
/**
* 题解:
* 1. 判断当前head节点是否为null
* 1.1 如果不为null,则首先获取一下head.next
* 1.2 将当前head插入到ret和ret.next之间即可
* 2. return ret的next.
* @param head
* @return
*/
public ListNode reverseList(ListNode head) {
ListNode ret = new ListNode()
while (head != null) {
ListNode next = head.next
head.next = ret.next
ret.next = head
head = next
}
return ret.next
}
private class ListNode {
ListNode next
}
@Test
public void test1() {
ListNode h1 = new ListNode()
ListNode h2 = new ListNode()
ListNode h3 = new ListNode()
ListNode h4 = new ListNode()
ListNode h5 = new ListNode()
h1.next = h2
h2.next = h3
h3.next = h4
h4.next = h5
reverseList(h1)
}
}