給定乙個鍊錶的頭節點head, 請判斷該鍊錶是否為回
文結構。 例如: 1->2->1, 返回true。 1->2->2->1, 返回true。15->6->15, 返回true。 1->2->3, 返回false。
遍歷鍊錶,元素入棧,彈出時再從頭判斷即可
時間複雜度和額外空間複雜度都是o(n)
利用快慢指標,快指標走兩步,慢指標走一步
時間複雜度o(n),額外空間複雜度o(n/2)
"-->方法1:yes\n"
;else
cout <<
"-->方法1:no\n";if
(solution.
ispalindromelist2
(head)
) cout <<
"-->方法2:yes\n"
;else
cout <<
"-->方法2:no\n"
; cout << endl;
}return0;
}
判斷鍊錶是否回文?
given a singly linked list,determine if it is a palindrome.思路 兩個指標,乙個正常遞推,另乙個遞推速度為第乙個的兩倍 node.next.next 到末,分兩種情況 1.奇數個元素,最後快指標指向最後乙個元素 p2.next null 2....
鍊錶逆序 判斷鍊錶是否回文
1.具有煉表頭的單鏈表 假設需要逆序的單鏈表為 則逆序以後的鍊錶為 過程 1 取p1指向header next p1 stu next p2保留p1 next p2 p1 next 將p1 next置為null,因為單鏈表逆序以後,當前的p1節點為尾節點 p1 next null 2 取p3保留p2...
C C 之判斷鍊錶是否是回文鍊錶
判斷鍊錶是否是回文鍊錶主要通過判斷對應位置的元素值是否是相等的第一種解法 將原有鍊錶反轉獲取新的鍊錶,與原有的鍊錶比較,判斷對應元素的值是否相等 include using namespace std struct node typedef struct node plist typedef str...