我对链表有疑问。每个对象都有两个变量:指向下一个对象的指针和它自己的值。 问题的关键是检查数字是否为回文数。我试图将数字(按给定顺序)转换为N变量以进行反向检查但是到目前为止我已经失败了,要么使用long \ int变量,要么使用小数点(。)和第一位数后的Exx输入,如果使用double。
这是我目前的代码:
public class driver
{ // Driver program
public static void main(String args[])
{
int count=12;
double number=0;
double x=1;
while(count>0)
{
number=number+x*(Math.pow(10,count));
System.out.println(number);
count--;
if(x<10)
x++;
else x=1;
}
System.out.println(num);
}
我认为除了POW之外,还有一种更简单的方法来构建数字吗?
您的帮助(以及关于回文问题和链接列表的任何未来想法)将不胜感激。
答案 0 :(得分:0)
将元素复制到堆栈,然后将列表中的元素与堆栈中的元素进行比较。伪代码:
node = list.head;
while (node != null) {
stack.push(node.value);
node = node.next;
}
node = list.head;
boolean palindrome = true;
while (node != null) {
if (stack.pop != node.value) {
palindrome = false;
break;
}
}
if (palindrome) {
print "palindrome"
} else {
print "not a palindrome"
}