Java赋值

发布于 2024-10-21 22:50:48 字数 540 浏览 1 评论 0原文

我在链接列表上有这个 Java 作业。该问题要求从最后一个节点中找到第 n 个节点。我已经针对不同的输入对其进行了测试,效果很好,但法官不接受我的解决方案。这是我的函数

该函数获取对列表头的引用和 n 的值,该值始终为非负数。

Node findNtoLast ( Node start, int n)
{
    Node p,q;

    p = start;

    for(int i=0;i<n;i++)
    {
        p = p.next;
    }

    q = start;

    while(p.next != null) 
    {
        p = p.next;
        q = q.next;
    }

    return q;
}

示例输入:

A -> B-> C-> D

n     output
0     D
1     C
2     B
3     A

你能想到这个函数有什么问题吗?

I have this Java assignment on linked list. The question asks for finding nth node from the last. I have tested it for different inputs and it works fine but the judge is not accepting my solution. Here is my function

The function takes the reference to the list head and the value of n which will always be non-negative.

Node findNtoLast ( Node start, int n)
{
    Node p,q;

    p = start;

    for(int i=0;i<n;i++)
    {
        p = p.next;
    }

    q = start;

    while(p.next != null) 
    {
        p = p.next;
        q = q.next;
    }

    return q;
}

Sample input:

A -> B -> C -> D

n     output
0     D
1     C
2     B
3     A

Can you please think of anything that is wrong in the function ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浅紫色的梦幻 2024-10-28 22:50:48

情况

n >= num of nodes

我认为您需要处理输入当前函数将为此类输入提供 NullPointerException 的

。编辑:

您可以计算节点数并进行比较。或者,您可以在 for 循环中进行检查,如下所示:

for(int i=0;i<n;i++) {

   // have I reached the last node ?
   if (p.next != null) {
      p = p.next;
   } else {
      // n happens to be >= num of nodes..return null
      return null;
   }
}

I think you need to handle the case where input

n >= num of nodes

Your current function will give a NullPointerException for such an input.

EDIT:

You can count the number of nodes and compare. Alternatively you can make a check in your for loop as:

for(int i=0;i<n;i++) {

   // have I reached the last node ?
   if (p.next != null) {
      p = p.next;
   } else {
      // n happens to be >= num of nodes..return null
      return null;
   }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文