LeetCode 92 反轉鍊錶2

2021-10-02 06:03:28 字數 922 閱讀 6315

92 反轉鍊錶

參考leetcode的官方解析,迭代法完成,注意反轉之後,首尾的連線,此處是反轉鍊錶2的難點

#include#includeusing namespace std;

//鍊錶定義

struct listnode

listnode() {}

};class solution

//尋找開始結點位置

listnode* prev=null;//指向當前結點的前繼

listnode* curr = head;//當前結點

while (m>1)

//鍊錶開始反轉

listnode* con = prev;//反轉鍊錶的頭結點

listnode* tail = curr;//反轉鍊錶的尾

while (n>0)

//利用con,tail修復連線

//設定頭

if (con==null)//頭結點為prev

else//不為空

//設定尾

tail->next = curr;

return head;

}};//建立結點

listnode* create(vectorivec)

return head;

}//輸出鍊錶

void printlist(listnode* head)

}int main()

listnode* head = create(ivec);

printlist(head->next);

cout << endl;

solution s;

printlist(s.reversebetween(head->next, 2, 4));

return 0;

}

leetcode 92反轉鍊錶

反轉從位置 m 到 n 的鍊錶。請使用一趟掃瞄完成反轉。說明 1 m n 鍊錶長度。示例 輸入 1 2 3 4 5 null,m 2,n 4 輸出 1 4 3 2 5 null definition for singly linked list.public class listnode class...

LeetCode 92 反轉鍊錶 II

反轉從位置 m 到 n 的鍊錶。請使用一趟掃瞄完成反轉。說明 1 m n 鍊錶長度。示例 輸入 1 2 3 4 5 null,m 2,n 4 輸出 1 4 3 2 5 null 5ms definition for singly linked list.public class listnode c...

leetcode92 反轉鍊錶 II

反轉從位置 m 到 n 的鍊錶。請使用一趟掃瞄完成反轉。說明 1 m n 鍊錶長度。示例 輸入 1 2 3 4 5 null,m 2,n 4輸出 1 4 3 2 5 null思路 先往後遍歷找到需要反轉的節點作為起點 count m 然後按照劍指offer 反轉鍊錶 的思路,設定curr,pre,p...