Answer from cs61c-af (Annie Tran 16811592) for Question 2
#include <stdio.h>
#include <string.h>

char *copy(char *p){
    char copy[strlen(p)];
    char *s;
    int n;

    for(n = 0; *p != '\0'; p++){
	copy[n]= *p;
	n++;
    }
    s = &copy[0];
    return s;
}
int main(){
    char *name;
    struct node *head;	
    char s[]= "bush";
    char c[] = "clintion";
    struct node {
	struct node *next;
	char *string;
    };		
    struct node 	firstNode = { NULL, &c[0]};
    head = &firstNode;	
    name = &s[0];	
    
    
    /* adds the name to the node */
    struct node node1 = { &firstNode, copy(name)};
    head = &node1;
    
    
    /*  printf(" %c\t %c \n", *(head->string), *((head->next)->string) );
     */
    
    return 0;
 }	

