【问题标题】:How to get back to the head of a singly linked list after creating it in java?在java中创建单链表后如何回到单链表的头部?
【发布时间】:2019-10-30 23:42:59
【问题描述】:

我正在编写一个程序来将一个数字分割成它的数字并将数字以相反的顺序存储在一个链表中。但是我不明白如何返回链表?

我尝试创建一个头部 ListNode,但失败了。

public class ListNode {
   int val;
   ListNode next;
   ListNode(int x) { val = x; }
  }

class Solution{
  int sum=123;
  public ListNode sol(){
    answer = new ListNode(0);  
    while (sum > 0) {
     int digit = sum % 10;
     answer= new ListNode(digit);
     answer= answer.next;
     sum /= 10;
                    }
        return //////
  }
}

【问题讨论】:

    标签: java linked-list singly-linked-list


    【解决方案1】:

    这里:

    answer = new ListNode(0);  
    

    ListNode 实例是第一个元素,因此是列表的“根”。但是您的列表只是单链接的。你不能回到以前的元素!你必须记住它是从哪里开始的!

    换句话说,您有两种选择:

    • 将您的列表变成一个双链表(这样:每个节点都会记住它的前任)或
    • 记住那个根节点。

    换句话说:当使用answer 作为列表中的“移动指针”时,您应该执行以下操作:

    root = new ListNode(0); // remember this, it is the start of the list!
    answer = root;
    

    然后你必须确保root 保持不变!因为该引用代表(唯一!)您的列表数据的入口。当你失去它时,一切都失去了;-)

    【讨论】:

      猜你喜欢
      • 2014-04-09
      • 1970-01-01
      • 2021-11-30
      • 2017-10-04
      • 1970-01-01
      • 2011-01-19
      • 2016-12-22
      • 1970-01-01
      相关资源
      最近更新 更多