請判斷乙個鍊錶是否為回文鍊錶。
示例 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...