递归方法为什么不退出
来源: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回答
-
是不是循环调用啊 结合上下文啦
012017-10-31 -
ccmouse
2017-10-31
这是一个递归函数,你可以注意看一下调试器里的调用堆栈,第一个return返回以后,会跳到上一层调用他的那个人那里的第5行,看上去像是运行下去了,其实不是。不知同学是一时没想到还是不太理解递归。由于我这门课是面试课程,内容众多,属于复习课,所以听讲是需要学习过相关的计算机课程。
在后面的6-8 递归开销中,我还会打开调试器分析这个调用堆栈。
012017-10-31
相似问题