struct ListNode{
int val; \\链表数字域
ListNode *next; \\链表指针域
ListNode(int x) : val(x), next(NULL) {}
}
206. 反转链表(easy)
class Solution {
public:
ListNode* reverseList(ListNode* head) {
ListNode *previous = NULL;
ListNode *node = head;
ListNode *next = head;
while(node!=NULL)
{
next = next->next;
node->next = previous;
previous = node;
node = next;
}
return previous;
}
};
更多算法题
使用temp和记录节点值去进行链表逆序。
- 链表逆序(不可申请额外空间)—-206(easy)
- 链表逆序b(不申请额外的空间),从m到n逆序。—-92(medium)
- 求两个链表的交点,已知headA和headB。—-160(easy)
- 链表求环,(快慢指针)给定一个链表,判断其中是否有环—-141(easy)
- 链表划分,将小于x的放在大于x的节点前,且保持相对位置—-86(medium)
- 复制带随机指针的链表,节点中存在指向任意节点的随机指针—-138(hard)
- 排序链表的合并,合并两个已排序的链表,合并后也有序。—->21(easy)
- k个排序链表的合并,合并后任然有序。 —->23(hard)