LeetCode解题 Day07

206. Reverse Linked List

https://leetcode.com/problems/reverse-linked-list/


题目解释

你会得到一个链结串列,把它反过来吧

Example

https://i.imgur.com/LDxaxIV.png


解法

今天是很基本的题目,是资讯工程系大一就会学到的东西,所以今天就用超新手向的方式来写这篇吧!

程序码:

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]:
        
        current = head
        previous = None
        
        while current:
            temp = current.next
            current.next = previous
            previous = current
            current = temp
            
        return previous

https://i.imgur.com/IGmw0SU.png

  1. 首先要想想,我们现在站在节点1上面,如果把指向节点2的节点1改成指向NULL 的话,那我们就没办法去到节点2了,所以我们需要一个东西先把节点2存起来。
temp = current.next
  1. 接着,开始把现在的位置节点1改成指向NULL,并把目前站着的位置记录起来
current.next = previous
previous = current
  1. 最後,我们往前一步站到刚刚存起来的下一个点
current = temp

看文字说明觉得不够的人,就看看下面连结里的动画吧
动画连结


闲聊

/images/emoticon/emoticon56.gif


<<:  【第七天 - Bubble Sort 题目分析】

>>:  ML专案的特徵工程为什麽存在?包含哪些层面?怎麽练手感?

每个人都该学的30个Python技巧|技巧 30:档案操作(字幕、衬乐、练习)

今天!就是今天!!这个系列终於要完结啦~(撒花)(狂撒) 最後一个要教的技巧就是关於档案操作,如果想...

DAY28 - 在主机上建立WordPress网站与SSL设定

前言: 本篇是纪录如何在Ubuntu 20.04 LTS 底下搭建LEMP + WordPress ...

Day24:安全性和演算法-迪菲-赫尔曼金钥交换(Diffie-Hellman Key Exchange)

前言 前一天提到的Hybrid Cryptosystem,其中使用到的「key」会进行封装,避免被有...

[Re:PixiJS - Day42] dat.gui 小技巧 .name() / .listen() / .remember(obj)

先前有介绍过 dat.GUI,这篇补充一些先前没提过的部分: [PixiJS - Day-16] 使...

AWS Academy LMS 申请开课 - 教师

AWS 所提供的 AWS Academy 教材可以透过 AWS Academy Learning M...