站点工具

用户工具


====== 差别 ======

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
教程_算法_反转链表 [2021/09/14 11:57]
admin
教程_算法_反转链表 [2021/09/15 15:26] (当前版本)
admin
行 1: 行 1:
-<markdown> + 
-[<<返回其他算法题](教程/算法)+[\<\< 返回查看其他算法题](教程/算法)
 # 反转链表 # 反转链表
 输入一个链表,反转链表后,输出新链表的表头。  输入一个链表,反转链表后,输出新链表的表头。 
行 17: 行 17:
 ## 代码实现 ## 代码实现
 ```javascript ```javascript
-  function reverseList(list) { +  function reverseList(pHead) { 
-    let pre = next = null, cur = list+    let pre = next = null, cur = pHead
     while(cur) {     while(cur) {
       next = cur.next       next = cur.next
行 29: 行 29:
  
 ``` ```
 +## 原理
 +![原理](:笔记1_1.png)
 ## 测试 ## 测试
 ```javascript ```javascript
-<script> +  function reverseList(pHead) { 
- +    let pre = next = null, cur = pHead
-  function reverseList(list) { +
-    let pre = next = null, cur = list+
     while(cur) {     while(cur) {
       next = cur.next       next = cur.next
行 53: 行 53:
  
   function createList(values) {   function createList(values) {
-    if (values.length === 0) return null +    let pHead = new Node(-1
-    let head = new Node(values[0]), p = head +    for (let i = 0; i < values.length; i++) {
-    for (let i = 1; i < values.length; i++) {+
       p.next = new Node(values[i])       p.next = new Node(values[i])
       p = p.next       p = p.next
     }     }
-    return head+    return pHead.next
   }   }
  
-  function showList(list) { +  function showList(pHead) { 
-    let p = list+    let p = pHead
     let arr = []     let arr = []
     while (p) {     while (p) {
行 73: 行 72:
  
  
-  let list = createList([1,2,8,9,0,5])+  let list = createList([1,2,3])
   showList(list)   showList(list)
   let list2 = reverseList(list)   let list2 = reverseList(list)
   showList(list2)   showList(list2)
- 
- 
-</script> 
 ``` ```
  
  
  
- 
-</markdown> 
admin · 2021/09/14 11:57 · 教程_算法_反转链表.1631591863.txt.gz