演算法專題導航頁面
【題目描述】
給定乙個鍊錶,請判斷該鍊錶是否為回文結構。
【輸入描述】
n 表示鍊錶的長度。
val 表示鍊錶節點的值
【輸出描述】
如果為回文結構輸出 「true」 , 否則輸出 「false」。
【示例1】輸入5
1 2 3 2 1
輸出true
【備註】
1<= n <= 2000000
-1000000<= val <= 1000000
【**實現 - cpp版】
# include
using
namespace std;
// link list node define
struct list_node
;// create a link list
list_node *
input_list
(void
)else
}return phead;
}void
check
(list_node * head)
// node number >= 2
list_node *cur = head;
list_node *right = head-
>next;
while
(null
!= cur-
>next &&
null
!= cur-
>next-
>next)
// init a stack and push element pointed by pointer right
stack> s;
while
(null
!= right)
// diff between top() and pop()
while
(!s.
empty()
) s.
pop();
head = head-
>next;
} cout <<
"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...
判斷乙個鍊錶是否為回文結構
題目 給定乙個鍊錶的頭節點head,請判斷該鍊錶是否為回 文結構。例如 1 2 1,返回true。1 2 2 1,返回true。15 6 15,返回true。1 2 3,返回false。高階 如果鍊錶長度為n,時間複雜度達到o n 額外空間複雜 度達到o 1 普通演算法 運用棧,將資料域的內容放入棧...