java链接列表反向

时间:2017-10-10 19:13:35

标签: java

我正在编写一个LinkedList反向方法,在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` 当我打印逆向方法返回的Node时,我得到了输出..     o / p --- 10

1 个答案:

答案 0 :(得分: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使用其他一些反转方法。

祝你好运!