Add two linked list# JobHunting - 待字闺中
t*9
1 楼
这段程序被鄙视了,我也觉得太繁琐,写得不够简练。
麻烦各位review一下,提点儿改进意见,我也学习一下。
public LinkNode AddLinkedList(LinkNode ln1, LinkNode
ln2, int carry)
{
LinkNode result = new LinkNode();
LinkNode idx1 = ln1;
LinkNode idx2 = ln2;
if ((idx1 == null) && (idx2 == null))
{
if (carry == 0) return null;
else
{
LinkNode node = new LinkNode();
node.Value = 1;
node.Next = null;
result = node;
}
}
else if (idx1 == null)
{
LinkNode node = new LinkNode();
node.Value = (idx2.Value + carry) % 10;
node.Next = AddLinkedList(idx1, idx2.Next, (idx2.Value +
carry) / 10);
result = node;
}
else if (idx2 == null)
{
LinkNode node = new LinkNode();
node.Value = (idx1.Value + carry) % 10;
node.Next = AddLinkedList(idx1.Next, idx2, (idx1.Value +
carry) / 10);
result = node;
}
else
{
LinkNode node = new LinkNode();
node.Value = (idx1.Value + idx2.Value + carry) % 10;
node.Next = AddLinkedList(idx1.Next, idx2.Next, (idx1.Value
+ idx2.Value + carry) / 10);
result = node;
}
return result;
}
麻烦各位review一下,提点儿改进意见,我也学习一下。
public LinkNode
ln2, int carry)
{
LinkNode
LinkNode
LinkNode
if ((idx1 == null) && (idx2 == null))
{
if (carry == 0) return null;
else
{
LinkNode
node.Value = 1;
node.Next = null;
result = node;
}
}
else if (idx1 == null)
{
LinkNode
node.Value = (idx2.Value + carry) % 10;
node.Next = AddLinkedList(idx1, idx2.Next, (idx2.Value +
carry) / 10);
result = node;
}
else if (idx2 == null)
{
LinkNode
node.Value = (idx1.Value + carry) % 10;
node.Next = AddLinkedList(idx1.Next, idx2, (idx1.Value +
carry) / 10);
result = node;
}
else
{
LinkNode
node.Value = (idx1.Value + idx2.Value + carry) % 10;
node.Next = AddLinkedList(idx1.Next, idx2.Next, (idx1.Value
+ idx2.Value + carry) / 10);
result = node;
}
return result;
}