avatar
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;
}
avatar
l*a
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))
: {

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。