Given a singly linked list, determine if it is a palindrome.
Follow up:
Could you do it in O(n) time and O(1) space?
<Solution>Could you do it in O(n) time and O(1) space?
解提想法如下
- 利用快慢指標來找到中間點
- 把後半部反轉
- 逐一檢查前半部和後半部的元素,是否都相同
C++
Java
還有一種解法,可以借用 stack
先把 node 都放到 stack 裡面,然後只要拿出後半部,逐一比對即可
因為 stack 是 FILO 的結構,所以剛好會用反過來的順序拿出 node
kotlin
沒有留言:
張貼留言