【发布时间】:2021-04-24 22:40:06
【问题描述】:
我正在尝试解决一个问题,其中一个整数正数表示为单向链表,其中最低有效位是头节点。
例如数字 1234 表示为:4 -> 3 -> 2 -> 1 -> null
我正在尝试创建一个递归算法,但恐怕我遇到了一些麻烦。如果您能看一下并指导我正确的方向,我将不胜感激:
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,不再迭代移动到最后一个之前的节点。
我很想听听你的想法,谢谢!
【问题讨论】:
标签: java performance recursion linked-list