/in/foo.c:6:5: error: unknown type name 'Node'
     Node* next;
     ^~~~
/in/foo.c:9:1: error: unknown type name 'Node'
 Node* Insert(Node* head, int x)
 ^~~~
/in/foo.c:9:1: note: use 'struct' keyword to refer to the type
/in/foo.c:9:14: error: unknown type name 'Node'
 Node* Insert(Node* head, int x)
              ^~~~
/in/foo.c:32:13: error: unknown type name 'Node'
 void Printf(Node* node)
             ^~~~
/in/foo.c: In function 'main':
/in/foo.c:45:5: error: unknown type name 'Node'
     Node* head = NULL;
     ^~~~
/in/foo.c:45:5: note: use 'struct' keyword to refer to the type
/in/foo.c:49:14: warning: implicit declaration of function 'Insert' [-Wimplicit-function-declaration]
         head=Insert(head, k);
              ^~~~~~
/in/foo.c:49:13: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
         head=Insert(head, k);
             ^
/in/foo.c:52:9: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
     head=Insert(head, k);
         ^
/in/foo.c:53:5: warning: implicit declaration of function 'Printf' [-Wimplicit-function-declaration]
     Printf(head);
     ^~~~~~