คำถามเกี่ยวกับ Linked list

ผมมีคำถามกับ Linked List ครับ  code : https://www.picz.in.th/image/image-2.1XKokn
ผมไปดู code สั้นๆในเน็ตแล้วเขียนตามแล้วเกิดสงสัยครับ ว่า
ระหว่าง 
Node *head; 
Node *tail;
กับ
Node *newNode =new Node(value); 
         ต่างกันยังไงหรอครับ เท่าที่ผม เข้าใจ คือ ถ้ามีดอกจันคือ pointer ซึ่งมันเป็น integer เก็บ address  แล้วใน method addToTail(); ทำไม address มันสามารถ tail->next=newNode; ได้ เพราะมันมีหน้าที่เก็บได้แค่ address ไม่ใช่หรอ ผมจึงลอง ลบ tail->next=newNode; ออก เพราะผมคิดว่า 
tail = newNode ; คือการ reference ถึง  newNode แล้วแต่มันก็ไม่ได้ (output ไม่เหมือนเดิม) ผมจึงสงสัยครับ ว่า Node* head มันคืออะไร แล้วต่างจาก Node *newNode =new Node(value); อย่างไร
        อีกคำถามนึงครับ ผม งง ว่า ทำไมต้องสร้าง Node *Name  ทำไมไม่สร้าง  Node Name เพราะว่า ที่ผมเข้าใจถ้ามีดอกจันมันคือ address เช่น
int N=1; int *ptrN =&N; เวลา print (ptrN) มันจะได้เป็น address แล้วทำไมไม่สร้าง Node Name ไปเลยครับ ขอบคุณครับ
แก้ไขข้อความเมื่อ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่