public static void ReOrder(ref Node listHead)
{
if (listHead == null)
{
throw new ArgumentNullException("list Head is null!");
}
Node leftHead = listHead;
Node rightHead = null;
Node current = leftHead.Next;
leftHead.Next = null;
while (current != null)
{
rightHead = current.Next;
current.Next = leftHead;
leftHead = current;
current = rightHead;
}
listHead = leftHead;
}
下面是程序详细代码:
class Node
{
private int _value = 0;
public int NodeValue
{
get { return this._value; }
set { this._value = value; }
}
private Node _next = null;
public Node Next
{
get { return this._next; }
set { this._next = value; }
}
public Node()
{
this._value = 0;
}
public Node(int nodeValue)
{
this._value = nodeValue;
}
}
class ListUtil
{
public static void ReOrder(ref Node listHead)
{
listHead = ReOrder2(listHead);
}
public static void ReOrder(Node listHead)
{
listHead = ReOrder2(listHead);
}
private static Node ReOrder2(Node listHead)
{
if (listHead == null)
{
throw new ArgumentNullException("list Head is null!");
}
Node leftHead = listHead;
Node rightHead = null;
Node current = leftHead.Next;
leftHead.Next = null;
while (current != null)
{
rightHead = current.Next;
current.Next = leftHead;
leftHead = current;
current = rightHead;
}
return leftHead;
}
public static void ShowListInfo(Node listHead)
{
if (listHead == null)
{
throw new ArgumentNullException("listHead");
}
Console.WriteLine("{0,-7}{1}","Index","Value");
int i = 0;
while (listHead != null)
{
i++;
Console.WriteLine("{0,i,listHead.NodeValue);
listHead = listHead.Next;
}
}
}
class Program
{
static void Main(string[] args)
{
Node a = new Node(1);
Node b = new Node(2);
Node c = new Node(3);
Node d = new Node(4);
Node e = new Node(5);
Node f = new Node(6);
a.Next = b;
b.Next = c;
c.Next = d;
d.Next = e;
e.Next = f;
f.Next = null;
Console.WriteLine("Before Reorder:");
ListUtil.ShowListInfo(a);
//ListUtil.ReOrder(ref a);
//Console.WriteLine("After Reorder *With* ref:");
ListUtil.ReOrder(a);
Console.WriteLine("After Reorder *Without* ref:");
ListUtil.ShowListInfo(a);
Console.Read();
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。