示例#1
0
        public void ReverseStack(SinglyLLNode node, SinglyLLNode head)
        {
            if (node != null && node.Next != null)
            {
                ReverseStack(node.Next, head);
            }

            if (node.Next == null)
            {
                head = node;
            }
            else
            {
                node.Next.Next = node;
            }
        }
示例#2
0
        public SinglyLLNode Reverse(SinglyLLNode head)
        {
            SinglyLLNode curr = null, prev = null, next = null;

            curr = head;
            while (curr != null)
            {
                next      = curr.Next;
                curr.Next = prev;
                prev      = curr;
                curr      = next;
            }

            if (prev != null)
            {
                head = prev;
            }

            return(head);
        }