update 0206.翻转链表:添加复杂度分析
This commit is contained in:
parent
9321c3c677
commit
2d7a9a16c5
|
|
@ -68,6 +68,9 @@ public:
|
|||
};
|
||||
```
|
||||
|
||||
* 时间复杂度: O(n)
|
||||
* 空间复杂度: O(1)
|
||||
|
||||
## 递归法
|
||||
|
||||
递归法相对抽象一些,但是其实和双指针法是一样的逻辑,同样是当cur为空的时候循环结束,不断将cur指向pre的过程。
|
||||
|
|
@ -97,6 +100,9 @@ public:
|
|||
};
|
||||
```
|
||||
|
||||
* 时间复杂度: O(n), 要递归处理链表的每个节点
|
||||
* 空间复杂度: O(n), 递归调用了 n 层栈空间
|
||||
|
||||
我们可以发现,上面的递归写法和双指针法实质上都是从前往后翻转指针指向,其实还有另外一种与双指针法不同思路的递归写法:从后往前翻转指针指向。
|
||||
|
||||
具体代码如下(带详细注释):
|
||||
|
|
@ -120,6 +126,9 @@ public:
|
|||
};
|
||||
```
|
||||
|
||||
* 时间复杂度: O(n)
|
||||
* 空间复杂度: O(n)
|
||||
|
||||
|
||||
## 其他语言版本
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue