链表之判断一个链表是否为回文结构(三)
生活随笔
收集整理的這篇文章主要介紹了
链表之判断一个链表是否为回文结构(三)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
package com.chenyu.zuo.linkedList;import com.chenyu.zuo.linkedList.PrintCommonPart.Node;/*** 題目:給定一個頭結點,判斷該鏈表是否回文結構 * 例如: * 1->2->1 true * 1->2->2->1 true * 1->2->3 false *思路:*我們只需要幾個變量,額外空間復雜度為0(1),*可以在時間復雜度o(N)內完成所有的過程*改變鏈表的右半區的結構,使整個右半區反轉,最后指向中間節點*比如1->2->3->2->1*變成如下結構*1->2->* 3->null*1->2->**1->2->3->3->2->1*變成如下結構*1->2-> 3->null*1->2->3->*然后從左邊和右邊分別移動,如果每移動一步每個節點的值都相等*那么就是回文結構,不然不是*最后結果不管怎么樣,我們應該把鏈表恢復原來的樣子*/
public class IsPalindrome3 {public static class Node{//內部類public Node next;public int value;public Node(int value){this.value=value;}}public boolean isPalindrome(Node head){if(head==null || head.next == null){r
總結
以上是生活随笔為你收集整理的链表之判断一个链表是否为回文结构(三)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 链表之判断一个链表是否为回文结构(二)
- 下一篇: Andorid之为何要用到NDK?