【LeetCode从零单刷】Reverse Linked List
1142 ワード
タイトル:
Reverse a singly linked list.
回答:
シングルチェーンテーブルを反転します.よくあるテーマです.考え方は一時的に2つを考えて、1つはいくつかの空間を浪費して、1つの反転したチェーンテーブルを再構築して、コードはこのようです;2つ目は、元のチェーンテーブルノードを単独で保存するたびに、nextポインタが元の前のノードを指すようにすることである.
主に私が言いたいのはコード上の問題です. struct,classタイプのポインタについて.ポインタを使用する前に、メモリ領域を割り当てることを忘れないでください!!!そうでなければ、不可知な位置を指し、保護された空間である可能性があります. C++のうち、structもnewでメモリスペースを割り当てたポインタを返すことができます.Cでは、(ListNode*)malloc(sizeof(ListNode))としか書けません.
Reverse a singly linked list.
回答:
シングルチェーンテーブルを反転します.よくあるテーマです.考え方は一時的に2つを考えて、1つはいくつかの空間を浪費して、1つの反転したチェーンテーブルを再構築して、コードはこのようです;2つ目は、元のチェーンテーブルノードを単独で保存するたびに、nextポインタが元の前のノードを指すようにすることである.
主に私が言いたいのはコード上の問題です.
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* reverseList(ListNode* head) {
ListNode* tmphd = head;
ListNode* ans = NULL;
while(tmphd != NULL)
{
ListNode* tmp = (ListNode*)malloc(sizeof(ListNode));
// ListNode* tmp = new ListNode(tmphd->val); // C++
tmp->val = tmphd->val;
tmp->next = ans;
ans = tmp;
tmphd = tmphd->next;
}
return ans;
}
};