比较用链表表示的两个数字



我正在尝试解决一个问题,其中一个完整的正数表示为单向链表,其中最低有效数字是头节点。

例如数字1234表示为:4 ->3→2→1→空

我正在尝试创建一个递归算法,但是我担心我遇到了一些麻烦。如果您能帮我看一下,给我指路,我将不胜感激。

public int compareTo(BigNumber other){
String thisStr = toString();
String otherStr = other.toString();
if (thisStr.length() > otherStr.length())
return 1;
if (thisStr.length() < otherStr.length())
return -1;
if (thisStr.equals(otherStr))
return 0;
return compareTo(_head, other._head);
}
private int compareTo(IntNode ptr1, IntNode ptr2){
int ret = 0;
if (ptr1.getNext() != null && ptr2.getNext() != null)
return compareTo(ptr1.getNext(), ptr2.getNext());
if (ptr1.getValue() > ptr2.getValue())
ret = 1;
else if (ptr1.getValue() < ptr2.getValue())
ret = -1;
return ret;
}

在长度相等的情况下,我遇到了麻烦。我想创建一个递归,首先到最后一个节点(最高有效数字),并向后检查节点。

问题是函数必须有一个返回值,如果两个值相等,则返回0,不再迭代到最后一个节点之前的节点。

我想听听你的想法,谢谢!

在这一行中,您立即返回(仅基于最高有效数字):

return compareTo(ptr1.getNext(), ptr2.getNext());

只能在结果不等于0的情况下返回,否则检查下一位数字。

相关内容

最新更新