t*****9 发帖数: 569 | 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;
} | l*****a 发帖数: 14598 | 2 合在一起吧
while(idx1!=null || idx2!=null) {
int sum=carry;
if(idx1!=null) sum+=idx1.val;
if(idx2!=null) sum+=idx2.val;
.....
}
另外直接iteration 就可以了,为什么还recursion
>
【在 t*****9 的大作中提到】 : 这段程序被鄙视了,我也觉得太繁琐,写得不够简练。 : 麻烦各位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)) : {
|
|