leetcode解題之回文鍊錶

2021-10-03 02:26:20 字數 986 閱讀 3620

請判斷乙個鍊錶是否為回文鍊錶。

示例 1

:輸入:1-

>

2輸出:

false

示例 2

:輸入:1-

>2-

>2-

>

1輸出:

true

高階: 你能否用 o(n) 時間複雜度和 o(1) 空間複雜度解決此題?

先寫乙個簡單的迭代法對比法(使用額外空間)

/**

* definition for singly-linked list.

* public class listnode

* }*/class

solution

return s1.

equals

(s2);}

}

如果使用空間複雜度為o(1),基本上要找到中間值,但是對於鍊錶不會啊,想不到還是看官方題解吧,使用快慢指標,慢指標一次走一位,快指標一次走兩位,當快指標走到末尾時,慢指標正好走到中間位置。

/**

* definition for singly-linked list.

* public class listnode

* }*/class

solution

return

true;}

//獲取後半部分的第乙個節點

public listnode firstofhalfnode

(listnode head)

return slow.next;

}//反轉鍊錶

public listnode reserverlistnode

(listnode head)

return prev;

}}

leetcode之回文鍊錶

請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2 輸出 false示例 2 輸入 1 2 2 1 輸出 true高階 你能否用 o n 時間複雜度和 o 1 空間複雜度解決此題?其實可以把鍊錶的回文分析轉到普通陣列的回文分析中,基本思想就是拿到鍊錶中的每個node的val,然後把這些值按照先後順...

leetcode解題之反轉鍊錶

反轉乙個單鏈表。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null高階 你可以迭代或遞迴地反轉鍊錶。你能否用兩種方法解決這道題?笨人的方法,遍歷輸出鍊錶元素到列表,讓後再倒序遍歷列表建立新的鍊錶 definition for singly linked list.publi...

leetcode 鍊錶 回文鍊錶

請判斷乙個鍊錶是否為回文鍊錶。示例 1 輸入 1 2 輸出 false 示例 2 輸入 1 2 2 1 輸出 true 高階 你能否用 o n 時間複雜度和 o 1 空間複雜度解決此題?head null 空鍊錶,回文,返回true head.next null 只有乙個節點的列表,回文,返回tru...