判斷乙個鍊錶是否為回文結構
給定乙個鍊錶,請判斷該鍊錶是否為回文結構。
輸入描述:
n
nn 表示鍊錶的長度
a
ia_i
ai 表示鍊錶的各個節點的值。
輸出描述:
如果為回文結構輸出 「true」 , 否則輸出 「false」。
示例1輸入
4
1 2 2 1
輸出true
備註:
1 ≤n
≤106
1 \leq n \leq 10^6
1≤n≤106−1
06≤a
i≤10
6-10^6 \leq a_i \leq 10^6
−106≤a
i≤1
06題解:將資料壓入乙個棧中,如果鍊錶是回文鍊錶的話,則從棧頂到棧底(鍊錶尾部到首部)與鍊錶首部到尾部的節點對應的值應該相等。
**:
# include
using
namespace std;
struct list_node
;list_node *
input_list
(void
)else
}return phead;
}void
check
(list_node * head)
stack<
int> st;
list_node *p = head;
while
(p) p = head;
while
(p) p = p-
>next;
st.pop();
}puts
("true");
}int main (
)
判斷乙個鍊錶是否為回文結構
題目 給定乙個鍊錶的頭結點head,判斷該鍊錶是否為回文結構。例如 1 2 1,返回true 1 2 2 1,返回true 15 6 15,返回true 1 2 3,返回false 方法一 利用棧結構實現。從頭遍歷鍊錶,遍歷的同時把加點一次壓入棧中。因為棧為先進後出結構,所以遍歷完成後,從棧頂到棧底...
判斷乙個鍊錶是否為回文結構
這道題的做法是首先找到列表中間的結點,然後把中間結點之後的鍊錶翻轉,然後同時遍歷兩個鍊錶,比較結點的資料是否相同,如果有不同的,返回false,遍歷完說明資料相同,返回true public class palindromelist fast fast.next slow slow.next ret...
判斷乙個鍊錶是否為回文結構
演算法專題導航頁面 題目描述 給定乙個鍊錶,請判斷該鍊錶是否為回文結構。輸入描述 n 表示鍊錶的長度。val 表示鍊錶節點的值 輸出描述 如果為回文結構輸出 true 否則輸出 false 示例1 輸入5 1 2 3 2 1 輸出true 備註 1 n 2000000 1000000 val 100...