zoukankan      html  css  js  c++  java
  • Swap Nodes in Pairs

    题目:Given a linked list, swap every two adjacent nodes and return its head.

    Given 1->2->3->4

    you should return the list as 2->1->4->3.

    思路:设立tail作为下一个list前一个结点,所以每次判断当前和之后是否为空

        看了一下思路,立即ACCEPTED。

    本题思路很多,但是方法的不同,会导致解决的难易程度。我在一开怎么都不会accepted,原因就是个别情况不能考虑。

    设立tail作为下一个list前一个结点,所以每次判断当前和之后是否为空。这是一大技巧,还有就是每次都是判断

    “head!=NULL&&head->next!=NULL”,并且设立一个暂时的tmp,迭代来讲,head指向head->next->next。技巧性还是有的。


    代码:

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        ListNode* swapPairs(ListNode* head) {
            if(head==NULL||head->next==NULL){
                return head;
            }
            ListNode *dummy=new ListNode(-1);
            ListNode *tail=dummy;
            
            while(head!=NULL&&head->next!=NULL){
                ListNode *tmp=head->next;
                head->next=tmp->next;
                tail->next=tmp;
                tmp->next=head;
                
                tail=head;head=head->next;
                
            }
            head=dummy->next;
            delete dummy;
            
            return head;
        }
    };



  • 相关阅读:
    css3学习笔记之效果
    css3学习笔记之2D转换
    css3学习笔记之文本效果
    css3学习笔记之渐变
    css3学习笔记之背景
    css3学习笔记之边框
    AngularJs 入门参考代码
    环形矩阵
    Qt编写串口通信程序全程图文讲解[转]
    Qt操作Sqlite数据库
  • 原文地址:https://www.cnblogs.com/jsrgfjz/p/8519918.html
Copyright © 2011-2022 走看看