别做操之过急的”无效将军”,做实实在在的”日拱一卒” 前天在网上看到一句话很不错,拿来和大家分享,同时用我的“大叔”三观来解读这句话。 这句话是:“我们不需要操之过急的”无效将军”,我们需要实实在在的”日拱一卒”。 这句话翻译成日常用语的话来自于一句很经典的语句:纵使一年不将军,不可一日不拱 ...
前言 上篇我们主要介绍链表反转的原地反转解法。 除此以外,是否还有其他解法 当然,今天就来看看链表反转的递归解法。 递归 递归,字面意思,有 递 也有 归 拿我们经常听到的斐波那契数列来说,公式如下 f n f n f n f , f 现在比如求解f 的值,按照公式,可以展开为f f f ,如下图所示 这时候,我们不知道f 和f 的值,没关系,继续展开,如下图所示 从图中可以看出,各个节点已经分解 ...
2020-07-01 22:46 1 647 推荐指数:
别做操之过急的”无效将军”,做实实在在的”日拱一卒” 前天在网上看到一句话很不错,拿来和大家分享,同时用我的“大叔”三观来解读这句话。 这句话是:“我们不需要操之过急的”无效将军”,我们需要实实在在的”日拱一卒”。 这句话翻译成日常用语的话来自于一句很经典的语句:纵使一年不将军,不可一日不拱 ...
前天在网上看到一句话很不错,拿来和大家分享,同时用我的“大叔”三观来解读这句话。 这句话是:“我们不需要操之过急的”无效将军”,我们需要实实在在的”日拱一卒”。 这句话翻译成日常用语的话来自于一句很经典的语句:纵使一年不将军,不可一日不拱卒。此句来源于中国象棋: 将军:象棋中向对手 ...
运行结果: 链表:1->2->3->4->5反转之后的链表为:5->4->3->2->1 ...
定义链表结构 非递归反转单链表 递归反转单链表 测试 View Code ...
递归反转链表 先上代码,然后一步步分析。 1.我们先考虑两个结点。 刚进入递归函数时(此时是第一层递归),走到 ListNode *newHead=reverseList(head->next)代码处,head->next(图中编号为2的结点)作为头结点进入 ...
#include <stdio.h> typedef struct node { int val; node* next; }; node* reverse(node* li ...
链表定义 View Code 非递归实现很简单,只需要遍历一遍链表,在遍历过程中,把遍历的节点一次插入到头部。 View Code 递归实现:翻转head->为首的链表, 然后head变为尾部节点 ...
...