递归方法为什么不退出

来源:7-8 递归开销

car

2017-10-31

public Node reverseLinkedList(Node head){
    if (head==null||head.getNext()==null){
        return head;
    }
   Node newHead= reverseLinkedList(head.getNext());
    head.getNext().setNext(head);
    head.setNext(null);
    return newHead;
}

debug调试能走到第一个return ,程序还能走下去,return 不是方法返回么,这里如何理解

写回答

2回答

杀殿的爆碎牙

2017-10-31

是不是循环调用啊 结合上下文啦

0
1
car
非常感谢!
2017-10-31
共1条回复

ccmouse

2017-10-31

这是一个递归函数,你可以注意看一下调试器里的调用堆栈,第一个return返回以后,会跳到上一层调用他的那个人那里的第5行,看上去像是运行下去了,其实不是。不知同学是一时没想到还是不太理解递归。由于我这门课是面试课程,内容众多,属于复习课,所以听讲是需要学习过相关的计算机课程。

在后面的6-8 递归开销中,我还会打开调试器分析这个调用堆栈。

0
1
car
谢谢,脑子一下子转不过来,这递归是不太好理解。
2017-10-31
共1条回复

Google面试官亲授-Java面试新手尊享课

为面试新手量身定制的Java面试尊享课,解锁“鲤鱼跃龙门”的妙招

2853 学习 · 180 问题

查看课程