void Create_Head(LinkList &L,int n){
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
LinkList p;
for(int i=0;i<n;i++){
p=(LinkList)malloc(sizeof(LNode));
scanf(&p->data);
p->next=L->next;
L->next=p;
}
}
这个是重书上总结的头插法代码。下面是leetcode206题头插法应用,因为是小白刚好学习完这一节,这道题我看题解还有很多解法,这只是头插法来巩固学习。
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* reverseList(struct ListNode* head){
struct ListNode *L=(struct ListNode*)malloc(sizeof(struct ListNode));
L->next=NULL;
while(head){
struct ListNode *p=(struct ListNode *)malloc(sizeof(struct ListNode));
p->val = head ->val;
p ->next =L->next;
L->next = p;
head = head ->next;
}
return L->next;
}