Reverse Linked List
2017-03-26 17:13
218 查看
问题:单链表的反转问题。
思路:可以利用一个辅助的栈来解决,将链表中的所有元素入栈,然后再进行出栈操作构造一个新的链表来实现。也可 以通过循环的方式来实现,遍历链表,记住当前遍历节点的前一个节点后一个节点,将指针反转即可。public class Solution {
public ListNode reverseList(ListNode head) {
if (head == null || head.next == null) {
return head;
}
ListNode p = head;
ListNode q = head.next;
ListNode r = new ListNode(0);
p.next = null;
while (q != null) {
r = q.next;
q.next = p;
p = q;
q = r;
}
head = p;
return head;
}
}
思路:可以利用一个辅助的栈来解决,将链表中的所有元素入栈,然后再进行出栈操作构造一个新的链表来实现。也可 以通过循环的方式来实现,遍历链表,记住当前遍历节点的前一个节点后一个节点,将指针反转即可。public class Solution {
public ListNode reverseList(ListNode head) {
if (head == null || head.next == null) {
return head;
}
ListNode p = head;
ListNode q = head.next;
ListNode r = new ListNode(0);
p.next = null;
while (q != null) {
r = q.next;
q.next = p;
p = q;
q = r;
}
head = p;
return head;
}
}
相关文章推荐
- <LeetCode><Easy>206 ReverseLinkedList
- Reverse Linked List II
- cycle,reverse,rotate linked list
- [leetcode] Reverse Linked List II
- LeetCode: Reverse Linked List II
- LeetCode - M - Reverse Linked List II
- [LeetCode] Reverse Linked List
- Reverse Linked List
- [Leetcode]Reverse Linked List II
- leetCode(11):Reverse linked list II
- leetcode之旅(9)-Reverse Linked List
- 92. Reverse Linked List II
- LeetCode:206. Reverse Linked List
- LeetCode 92. Reverse Linked List II
- C实现 LeetCode->Reverse Linked List II (双指针大法)(单链表反转)
- Reverse Linked List II
- Reverse Linked List
- LeetCode | Reverse Linked List II(翻转链表2)
- leetcode-92. Reverse Linked List II
- [LeetCode]206. Reverse Linked List