Java教程

力扣,两两交换链表中的节点

本文主要是介绍力扣,两两交换链表中的节点,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

题目

class Solution {
    public static ListNode swapPairs(ListNode head) {
        if(head==null||head.next==null) return head;
        ListNode result=null;
        ListNode index=head;
        // 记录链表的交换前的前置节点位置
        ListNode pre=null;
        while (index!=null&&index.next!=null){
            ListNode next=index.next.next;
            ListNode tem=index;
            index=index.next;
            index.next=tem;
            tem.next=next;
            if(result==null)
                result=index;
            if(pre==null){
                pre=index.next;
            }else{
            	// 更新前置节点指向的后续节点
                pre.next=index;
                // 前置节点移动下位置
                pre=index.next;
            }
            index=next;
        }
        return result;
    }
}
这篇关于力扣,两两交换链表中的节点的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!