【问题标题】:java Linked List Reverse [duplicate]java链表反向[重复]
【发布时间】:2018-03-22 07:20:00
【问题描述】:

我正在写一个LinkedList reverse方法,在main方法中,我定义temp并调用reverse方法(root包含链表)

Node temp=null;
r=a.reverse(root,temp);

public Node reverse(Node node,Node temp){
    if(node!=null){
        Node n=new Node();
        n.data=node.data;
        n.next=temp;
        temp=n;
        node=node.next;
        reverse(node,temp);
    }
    return temp;    
}

我的死记硬背包含 10,20,30,40,50` 当我打印反向方法返回的节点时,我得到了输出.. o/p--- 10

【问题讨论】:

  • 我对此表示反对,因为它“没有显示出任何研究成果”。只需 searching for your title 就该主题提出了几个已经回答的问题。

标签: java


【解决方案1】:

您在函数本身内部取消了调用的返回,这就是为什么整个调用仅返回第一次调用的 temp 的原因。这应该有效:

Node temp=null;
r=a.reverse(root,temp);

public Node reverse(Node node,Node temp) {
    if (node!=null){
        Node n=new Node();
        n.data=node.data;
        n.next=temp;
        temp=n;
        node=node.next;
        return reverse(node,temp); // Here now we return this result
    }
return temp;    
}

另外,我建议您this question 使用其他一些反转方法。

祝你好运!

【讨论】:

  • 谢谢@Gustavo Sánchez
猜你喜欢
  • 2014-05-01
  • 2012-03-27
  • 1970-01-01
  • 2012-03-09
  • 2016-06-11
  • 2017-03-10
  • 2011-05-06
  • 2017-06-22
相关资源
最近更新 更多