zoukankan      html  css  js  c++  java
  • 两两交换链表中的节点(leetcode24)

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

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

    示例:

    输入:head = [1,2,3,4]
    输出:[2,1,4,3]

    解析:

    方法一:递归

    public class leetcode24 {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
    
            ListNode item4 = new ListNode(4);
            ListNode item3 = new ListNode(3,item4);
            ListNode item2 = new ListNode(2,item3);
            ListNode item1 = new ListNode(1,item2);
            
            ListNode ans = swapPairs(item1);
            ans.printNode(ans);
        }
        
        /**
         * 递归
         * 
         * @param head
         * @return
         */
        public static ListNode swapPairs(ListNode head)
        {
            if(head==null||head.next==null){
                return head;
            }
            ListNode newHead = head.next;
            head.next = swapPairs(newHead.next);
            newHead.next = head;
            
            return newHead;
        }
    
    }

    方法二:迭代

        /**
         * 迭代
         * @param head
         * @return
         */
        public static ListNode swapPairs1(ListNode head){
            ListNode dummyHead = new ListNode(0);
            dummyHead.next = head;
            ListNode temp = dummyHead;
            
            while(temp.next!=null&&temp.next.next!=null){
                ListNode node1 = temp.next;
                ListNode node2 = temp.next.next;
                temp.next = node2;
                node1.next = node2.next;
                node2.next = node1;
                temp = node1;//因为此时node1连接后面的节点
            }
            return dummyHead.next;
        }
  • 相关阅读:
    字符串套餐(更新中)
    洛谷P4145 上帝造题的七分钟2 / 花神游历各国(重题:洛谷SP2713 GSS4
    [AHOI2013]作业
    我的配置
    [HAOI2006]受欢迎的牛
    洛谷P1456Monkey King
    洛谷P2331[SCOI2005]最大子矩阵
    如何更换博客背景
    洛谷P2419 [USACO08JAN]牛大赛Cow Contest
    JS正则表达式验证数字
  • 原文地址:https://www.cnblogs.com/Vincent-yuan/p/14502477.html
Copyright © 2011-2022 走看看