struct treelist
treelist(int a)
};//使用棧來做,這是最簡單的方法,空間複雜度為o(n)
bool isre_1(treelist *p)
while (p)
return true;
}//使用快慢指標尋找中點,能夠比普通的暴力解法省一半的空間
bool isre_2(treelist* p)
} slow = slow->next;
stackst;
while (slow)
while (!st.empty())
else
} cout << "是回文" << endl;
return true;
}//只是用有限幾個變數的解法,比上面的要難很多
bool isre_3(treelist*p)
} treelist *mid = slow;
treelist *pre = slow->next;
treelist *after = slow;
treelist *temp = null;
while (pre)
mid->next = null;
bool is = true;
while (p&&after)
else
} pre = temp->next;
after = temp;
after->next = null;
treelist* back = null;
while (pre)
mid->next = back;
return is;
}
判斷鍊錶是不是回文數
主要思想,先找到中間結點,對後半段鍊錶反轉,然後一一對比資料,看看是不是相同,相同就是回文鍊錶,不同就不是 import sys 引用當前資料夾下的single linked list from singly linked list import singlylinkedlist def rever...
leetcode 234 判斷是不是回文鍊錶
聰明的我想到了利用棧先進後出的特性,求出鍊錶的長度之後前一半入棧,後一半出棧的方法,雖然簡單易懂,但是效率有點低,貼 definition for singly linked list.struct listnode listnode int x val x next nullptr listnod...
判斷一條單向鍊錶是不是 回文
題目 判斷一條單向鍊錶是不是 回文 思路一 採用快慢指標,慢指標入棧,當快指標為null時,出棧和慢指標比較即可。時間複雜度o n 空間複雜度o n 優點 比較好實現,且沒有修改鍊錶 缺點 需要分配記憶體 include include include typedef int elem typede...