• 1.7交换链表中的相邻节点


    交换链表中的相邻节点

    题目描述:

    把链表相邻元素翻转,例如给定链表为1——>2一>3一>4一>5——>6一>7,则翻转后的链表变为2一>1一>4一>3一>6一>5一>7

    解题思路:

    就地逆序法:

    通过调整结点指针域的指向来直接调换相邻的两个结点。如果单链表恰好有偶数个结点,那么只需要将奇偶结点对调即可,如果链表有奇数个结点,那么只需要将除最后一个结点外的其它结点进行奇偶对调即可。

    代码实现:

    # -*-coding:utf-8-*- 
    """
    @Author  : 图南
    @Software: PyCharm
    @Time    : 2019/9/6 18:34
    """
    class Node:
        def __init__(self, data=None, next=None):
            self.data = data
            self.next = next
    
    
    def print_link(head):
        if head is None or head.next is None:
            return None
        cur = head.next
        while cur.next != None:
            print(cur.data, end=' ')
            cur = cur.next
        print(cur.data)
    
    
    def con_link(n):
        head = Node()
        cur = head
        for i in range(1, n+1):
            node = Node(i)
            cur.next = node
            cur = node
        return head
    
    
    def reverseNode(head):
        pre = head
        cur = pre.next
        while cur is not None and cur.next is not None:
            next = cur.next
            pre.next = next
            cur.next = next.next
            next.next = cur
            pre = cur
            cur = pre.next
        return head
    
    
    if __name__ == '__main__':
        head = con_link(6)
        print_link(head)
        head = reverseNode(head)
        print_link(head)
    

    运行结果:


  • 相关阅读:
    Spring Boot 内嵌Tomcat的端口号的修改
    仅显示INPUT下边框
    2015面试记三
    2015面试记二
    2015面试记一
    最近工作学习心得体会
    Tomcat批处理文件小结
    启动Tomcat一闪而过——分析及解决过程
    WIN7安装及配置JDK
    Firefox下载文件时中文名乱码问题
  • 原文地址:https://www.cnblogs.com/miao-study/p/11479801.html
Copyright © 2020-2023  润新知