Reverse a singly linked list.
思路:
1. 首先考虑链表为空和链表只有一个节点的情况。此时无需反转,直接返回原链表。
2. 三个指针
a) 第一个指针p1指向头指针,
b) 第二个指针p2指向头指针的next
c) 第三个指针p3作为缓存,保存第二个指针的next。
3. 注意第一次分配完三个指针后,就可以改变头指针的next为空,以免之后忘记。
4. 开始反转,先保存p2.next到p3,再将p2.next设为p1,最后将p1和p2指针挪到下一步。
5. 重复步骤4,直到p2为空,此时p1即为结果。
No comments:
Post a Comment