LeetCode初級算法--鏈表01:反轉鏈表

LeetCode初級算法--鏈表01:反轉鏈表

搜索微信公衆號:'AI-ming3526'或者'計算機視覺這件小事' 獲取更多算法、機器學習乾貨
csdn:https://blog.csdn.net/baidu_31657889/
csdn:https://blog.csdn.net/abcgkj/
github:https://github.com/aimi-cn/AILearnerspython

1、引子

這是由LeetCode官方推出的的經典面試題目清單~
這個模塊對應的是探索的初級算法~旨在幫助入門算法。咱們第一遍刷的是leetcode推薦的題目。
查看完整的劍指Offer算法題解析請點擊github連接:
github地址git

2、題目

反轉一個單鏈表。github

示例:面試

輸入: 1->2->3->4->5->NULL
輸出: 5->4->3->2->1->NULL

進階:算法

你能夠迭代或遞歸地反轉鏈表。你可否用兩種方法解決這道題?編程

一、思路

這個題對我來講仍是有點難度了,其實原理不難,咱們咱們使用三個指針,分別指向當前遍歷到的結點、它的前一個結點以及後一個結點。微信

在遍歷的時候,作當前結點的尾結點和前一個結點的替換。機器學習

由於這個題目以前在刷LeetCode的時候已經作過詳細的圖解說明 你們看連接就能夠:https://blog.csdn.net/baidu_31657889/article/details/91552141學習

二、編程實現

python.net

# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution(object):
    def reverseList(self, head):
        """
        :type head: ListNode
        :rtype: ListNode
        """
        if head==None or head.next==None:
            return head
        pre = None
        while head:
            next = head.next
            head.next = pre
            pre = head
            head = next
        return pre

AIMI-CN AI學習交流羣【1015286623】 獲取更多AI資料

分享技術,樂享生活:咱們的公衆號計算機視覺這件小事每週推送「AI」系列資訊類文章,歡迎您的關注!

本文由博客一文多發平臺 OpenWrite 發佈!

相關文章
相關標籤/搜索