#include <stdio.h>
#include <stdlib.h>
typedef struct linklist {
int val;
struct linklist *next;
} MyLinkedList;
void dump_list(MyLinkedList *head)
{
MyLinkedList *node;
for (node = head; node != NULL; node = node->next) {
printf("%d%s", node->val, node->next ? " -> " : "\n");
}
}
void AddAtHead(MyLinkedList* obj, int val)
{
MyLinkedList* tem = malloc(sizeof(MyLinkedList));
// tem->val=obj->val;
// tem->next=obj->next;
// obj->val=val;
// obj->next=tem;
tem->val=val;
tem->next=obj;
obj=tem;
printf("obj in AddAtHead():\n");
dump_list(obj); /* 1 -> 2 -> 7 */
printf("tem in AddAtHead():\n");
dump_list(obj); /* 1 -> 2 -> 7 */
}
int main()
{
MyLinkedList node1, node2;
MyLinkedList *head;
node1.val = 2;
node1.next = &node2;
node2.val = 7;
node2.next = NULL;
head = &node1;
printf("Initial list:\n");
dump_list(head); /* 2 -> 7 */
AddAtHead(head, 1); /* head still points to node1 */
printf("AddAtHead() called:\n");
dump_list(head); /* 2 -> 7 */
return 0;
}