题目描述
输入一个链表,反转链表后,输出新链表的表头。
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
ListNode *head = (ListNode*)malloc(sizeof(ListNode));
head->next = NULL;
while(pHead)
{
ListNode *flag = (ListNode*)malloc(sizeof(ListNode));
flag->val = pHead->val;
flag->next = head->next;
head->next = flag;
pHead = pHead->next;
}
return head->next;
}
};
本文深入探讨了链表数据结构的反转算法实现。通过详细解释并提供C++代码示例,展示了如何创建一个新的链表,其节点顺序与原始链表完全相反。此过程涉及遍历原链表,为每个节点创建新的链表节点,并调整指针方向。
1071

被折叠的 条评论
为什么被折叠?



