递归理解问题
来源:5-3 递归基础与递归的宏观语意
慕前端8962423
2019-11-29
波波老师好,这几天开始复盘本课,今天看到ListNode的删除问题的时候,突然想着增加一个removeFirstElement
方法:
public ListNode removeFirstElement(ListNode node, int val) {
if (node == null) return null;
if (node.val == val) {
return node.next;
}
node.next = removeFirstElement(node.next, val);
return node;
}
经过验证结果是正确的。
同时尝试给递归划分个阶段,我想问下站在您的角度来看,这样的划分合适吗,是否有可能会对更复杂的递归情境造成理解障碍。
我的划分过程如下:
然后把求和代码做了一点类似几何中的辅助线功能的小改动:
写回答
1回答
-
如果你的 removeFirstElement 指删除第一个值为 val 的元素,没有问题。代码的解析也很正确:)
不过一般我不喜欢分“有穷终止”和“需求终止”这样的条件(实际上这是我第一次听说这样的名词)。在我看来,都是终止条件。但是终止条件有可能有多种,面对终止条件,也有可能产生不同的逻辑。
不过这无所谓,只要有助于你的理解,就是可以的:)
继续加油!:)
012019-12-02
相似问题
利用链表的递归性质求解“链表翻转”问题
回答 3
递归初步理解
回答 1