static void Main(string[] args)
        {
            Mynode mynode0 = new Mynode();
            Mynode mynode1 = new Mynode();
            Mynode mynode2 = new Mynode();
            Mynode mynode3 = new Mynode();
            Mynode mynode4 = new Mynode();
            Mynode mynode5 = new Mynode();
            mynode0.Value = 0;
            mynode0.Next = mynode1;
            mynode1.Value = 1;
            mynode1.Next = mynode2;
            mynode2.Value = 2;
            mynode2.Next = mynode3;
            mynode3.Value = 3;
            mynode3.Next = mynode4;
            mynode4.Value = 4;
            mynode4.Next = mynode5;
            mynode5.Value = 5;
            mynode5.Next = null;
            mynode0 = Reverse(mynode0, mynode0.Next);
        }
static Mynode Reverse(Mynode current, Mynode next)
        {
            Mynode tmp = next.Next;
            next.Next = current;
            if (current.Value == 0)//判断头
            {
                current.Next = null;
            }
            if (tmp == null)
            {
                return next;
            }
            else
            {
                return Reverse(next, tmp);
            }
        }
 public class Mynode
    {
        public int Value;
        public Mynode Next;
    }