zoukankan      html  css  js  c++  java
  • 链表节点两两交换

    给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。

    你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。

    示例:

    给定 1->2->3->4, 你应该返回 2->1->4->3.

    public static ListNode swapParis(ListNode head){
            /*声明一个哑节点*/
            ListNode dumb=new ListNode(0);
            /*哑节点的下一个节点指向头节点*/
            dumb.next=head;
            /*声明一个引用指向哑节点*/
            ListNode temp=dumb;
            /*如果哑节点的下一个节点和下下一个节点不为空继续转换*/
            while (dumb.next!=null&&dumb.next.next!=null){
                /*要转换的第一个节点(称为curr)*/
                ListNode curr=dumb.next;
                /*要转换的第二个节点(称为next)*/
                ListNode next=dumb.next.next;
                /*指定curr的下一个是next的下一个*/
                curr.next=next.next;
                /*指定next的下一个是curr*/
                next.next=curr;
                /*指定哑节点的下一个是next*/
                dumb.next=next;
                /*哑节点引用指向哑节点的下下一个节点*/
                dumb=dumb.next.next;
            }
            /*返回哑节点的没改变引用的下一个节点*/
            return temp.next;
        }
    View Code

    代码中有注释。

  • 相关阅读:
    Vue在移动端App中使用的问题总结
    CSS中的自适应单位vw、vh、vmin、vmax
    sass、less中的scoped属性
    CSS中的 , > + ~
    Git 使用的问题总结
    Vux的安装使用
    React-router的基本使用
    React使用的扩展
    React使用的思考总结
    React的基本使用
  • 原文地址:https://www.cnblogs.com/wuyouwei/p/11775842.html
Copyright © 2011-2022 走看看