判斷乙個鍊錶是否為回文結構

2021-09-29 23:21:01 字數 1251 閱讀 8858

演算法專題導航頁面

【題目描述】

給定乙個鍊錶,請判斷該鍊錶是否為回文結構。

【輸入描述】

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 普通演算法 運用棧,將資料域的內容放入棧...