标签:单链表 etc 小结 假设 头结点 tco java == ref
反转一个单链表。
**示例 ??*
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
进阶:
链表定义如下:
class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
}
}
代码:
class Solution {
public ListNode reverseList(ListNode head) {
ListNode pre = null;
while (head != null) {
ListNode next = head.next;
head.next = pre;
pre = head;
head = next;
}
return pre;
}
}
head.next.next = head;
,下一个结点指回当前结点,此时这两个结点就形成一个环了,所以还要断开当前结点指向下一个结点的连接。head.next = null;
。代码:
class Solution {
public ListNode reverseList(ListNode head) {
if (head == null || head.next == null) {
return head;
}
ListNode newHead = reverseList(head.next);
head.next.next = head;
head.next = null;
return newHead;
}
}
迭代法比较简单,递归法很有意思。
标签:单链表 etc 小结 假设 头结点 tco java == ref
原文地址:https://www.cnblogs.com/qiu_jiaqi/p/LeetCode_206.html