using System;
public class Node
{
public object data;
public Node next;
public Node(object data)
{
this.data = data;
}
}
public class LinkedList
{
private Node head;
private Node current;
public void Add(Node n)
{
if (head == null)
{
head = n;
current = head;
}
else
{
current.next = n;
current = current.next;
}
}
public void Print()
{
Node curr = head;
while(true)
{
if(curr == null)
return;
Console.WriteLine(curr.data.ToString());
curr = curr.next;
}
}
}
class Program
{
static void Main(string[] args)
{
LinkedList list = new LinkedList();
list.Add(new Node("first"));
list.Add(new Node("second"));
list.Add(new Node("third"));
list.Add(new Node("fourth"));
list.Print();
}
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIE5vZGUKewogICAgcHVibGljIG9iamVjdCBkYXRhOwogICAgcHVibGljIE5vZGUgbmV4dDsKICAgIHB1YmxpYyBOb2RlKG9iamVjdCBkYXRhKQogICAgewogICAgICAgIHRoaXMuZGF0YSA9IGRhdGE7CiAgICB9Cn0KCnB1YmxpYyBjbGFzcyBMaW5rZWRMaXN0CnsKICAgIHByaXZhdGUgTm9kZSBoZWFkOwogICAgcHJpdmF0ZSBOb2RlIGN1cnJlbnQ7CiAgICBwdWJsaWMgdm9pZCBBZGQoTm9kZSBuKQogICAgewogICAgICAgIGlmIChoZWFkID09IG51bGwpCiAgICAgICAgewogICAgICAgICAgICBoZWFkID0gbjsKICAgICAgICAgICAgY3VycmVudCA9IGhlYWQ7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIGN1cnJlbnQubmV4dCA9IG47CiAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50Lm5leHQ7CiAgICAgICAgfQogICAgfQogICAgCiAgICBwdWJsaWMgdm9pZCBQcmludCgpCiAgICB7CiAgICAJTm9kZSBjdXJyID0gaGVhZDsKICAgIAl3aGlsZSh0cnVlKQogICAgCXsKICAgIAkJaWYoY3VyciA9PSBudWxsKQogICAgCQkgICByZXR1cm47CiAgICAJCSBDb25zb2xlLldyaXRlTGluZShjdXJyLmRhdGEuVG9TdHJpbmcoKSk7CiAgICAJCSBjdXJyID0gY3Vyci5uZXh0OwogICAgCX0KICAgIH0KfQoKCmNsYXNzIFByb2dyYW0KewogICAgc3RhdGljIHZvaWQgTWFpbihzdHJpbmdbXSBhcmdzKQogICAgewogICAgICAgIExpbmtlZExpc3QgbGlzdCA9IG5ldyBMaW5rZWRMaXN0KCk7CiAgICAgICAgbGlzdC5BZGQobmV3IE5vZGUoImZpcnN0IikpOwogICAgICAgIGxpc3QuQWRkKG5ldyBOb2RlKCJzZWNvbmQiKSk7CiAgICAgICAgbGlzdC5BZGQobmV3IE5vZGUoInRoaXJkIikpOwogICAgICAgIGxpc3QuQWRkKG5ldyBOb2RlKCJmb3VydGgiKSk7CiAgICAgICAgbGlzdC5QcmludCgpOwogICAgfQp9