#include <iostream>

using namespace std;

struct Node{
    int val;//节点存了两个东西 数据值和指针
    Node* next;
    
    Node(int _val) : val(_val), next(NULL){}
};


int main(){
    Node* p = new Node(1);
    Node* q = new Node(2);
    Node* o = new Node(3);
    
    p->next = q;
    q->next = o;
    
    
    Node* head = p;//定义一个头节点指针head 指向p的地址
    
    
    //链表的遍历方式
    for(Node* i = head; i; i = i->next){//i指针起始位置head i存在也就是i!=NULL 直到空指针位置一直遍历 执行i = 下一个指向的指针地址也就是next
        cout << i->val << endl;
    }
    
    return 0;
}

//一般编译器 g++ clang在mac上编译c++的软件