zoukankan      html  css  js  c++  java
  • 剑指offer 反转链表

    本内容为牛客网,剑指offer题目:反转链表

    # -*- coding: utf-8 -*-
    """
    Created on Wed Mar 13 13:33:31 2019
    
    @author: Administrator
    输入一个链表,反转链表后,输出新链表的表头
    
    用三个地址保存该节点的前后节点地址
    """
    
    # -*- coding:utf-8 -*-
    class ListNode:
        def __init__(self, x):
            self.val = x
            self.next = None
    class Solution:
        # 返回ListNode
        def ReverseList(self, pHead):
            # write code here
            if pHead == None:    #首先判断该链表是否为空
                return None
            else:    #
                i = pHead
                j = pHead.next
                if j == None:    #如果传入的链表是不空的,判断链表是否只有一个元素
                    return i    #如果只有一个就直接返回这一个元素即可
                i.next = None    #先将第一个元素的的子节点赋空
                while True:    
                    if j.next:    #判断后节点是否为空,不为空说明没有到尾节点
                        temp = j.next    #将该节点的子节点保存起来
                        j.next = i    #续链,串联前面的节点
                        i = j    #保存该节点的地址
                        j = temp    #地址后移到下一个
                    else:    #如果是最后一个节点了就直接将前面的节点串接起来即可
                        j.next = i
                        break
            return j
        def print_listNode(self,pHead):
            while pHead:
                print(pHead.val)
                pHead = pHead.next
    if __name__ == '__main__':
        #test1 为空的链表
        #n_empty = ListNode()
        #test2 只有一个节点的链表
        n_one = ListNode(1)
        #正常的大于2的链表
        n1 = ListNode(1)
        n2 = ListNode(2)
        n3 = ListNode(3)
        n4 = ListNode(4)
        n5 = ListNode(5)
        
        n4.next = n5
        n3.next = n4
        n2.next = n3
        n1.next = n2
        
        solution = Solution()
        print('---------------正序的链表------------')
        solution.print_listNode(n1)
        
        print('---------------倒置的链表------------')
        result = solution.ReverseList(n1)
        solution.print_listNode(result)
  • 相关阅读:
    第三天-基本数据类型 int bool str
    第二天-while循环 格式化输出 运算符 编码
    第一天-python基础
    Mysql
    Mysql
    Mysql
    Mysql
    Mysql
    Mysql
    Php
  • 原文地址:https://www.cnblogs.com/missidiot/p/10522948.html
Copyright © 2011-2022 走看看