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...