链表问题——判断一个链表是否为回文结构
来源:互联网 发布:去哪里学淘宝运营 编辑:程序博客网 时间:2024/06/08 07:14
【题目】
给定一个链表的头结点head,请判断该链表是否为回文结构
例如:
1->2->1 返回true
1->2->3 返回false
【代码】
演示三种方法
import java.util.*;class test{ class Node{ public Node head; public int value; public Node next; public Node(int data){ this.value = data; } } public static boolean isPalindrom1(Node head){ if(head==null||head.next==null){ return true; } Stack<Node> stack = new Stack<Node>(); Node cur = head; while(cur!=null){ stack.push(cur); cur = cur.next; } while(head!=null){ if(head.value != stack.pop().value){ return false; } head = head.next; } return true; } public static boolean isPalindrom2(Node head){ if(head==null||head.next==null){ return true; } Node right = head.next; Node cur = head; while(cur.next!=null && cur.next.next!=null){ right = right.next; cur = cur.next.next; } Stack<Node> stack = new Stack<Node>(); while(right!=null){ stack.push(right); right = right.next; } while(!stack.isEmpty()){ if(head.value!=stack.pop().value){ return false; } head = head.next; } return true; } public static boolean isPalindrom3(Node head){ if(head==null || head.next==null){ return true; } Node n1 = head; Node n2 = head; while(n2.next!=null&&n2.next.next!=null){ n1 = n1.next; n2 = n2.next.next; } Node n3 = n1.next; n1.next = null; while(n3!=null){ n2 = n3.next; n3.next = n1; n1 = n3; n3 = n2; } n3 = n1; while(head.next!=null){ if(head.value!=n1.value){ return false; } head = head.next; n1 = n1.next; } n1 = n3.next; while(n3!=null){ n2 = n1.next; n1.next = n3; n1 = n2; n3 = n1.next; } return true; }}
阅读全文
2 0
- 链表问题——判断一个链表是否为回文结构
- 判断一个链表是否为回文结构
- 判断一个链表是否为回文结构(java实现)
- 判断一个链表是否为回文结构
- 判断一个链表是否为回文结构
- 判断一个链表是否为回文结构
- 判断一个链表是否为回文结构
- 判断一个链表是否为回文结构
- 链表问题---判断一个链表是否为回文结构
- 链表之判断一个链表是否为回文结构(一)
- 链表之判断一个链表是否为回文结构(二)
- 链表之判断一个链表是否为回文结构(三)
- java判断一个链表是否是回文结构
- 判断一个链表是否是回文结构 Python 版
- 判断链表是否为回文串以及关于回文串问题的讨论
- 判断链表是否为回文结构(时间、空间复杂度有要求)
- 判断是否为回文结构
- 判断链表是否回文?
- 加载虚拟机vmdk文件报错
- 填坑之路:记一次hive外部表查询hbase的long类型数据出现乱码问题
- 线程池之工作原理
- JAVA从入门到基础(四) 一 GC算法与种类
- SSM框架下Mysql主从模式实现
- 链表问题——判断一个链表是否为回文结构
- java网络编程
- 在微信中自定义导游图或者导购图(支持文字、声音、图片)
- [编程题]binary-tree-inorder-traversal
- POJ 1328 岛屿雷达问题 贪心
- mysql、mariadb-半同步复制
- 2017icpc-beijing-j(pangu and stone)
- 差点进入游戏深坑
- 171121-数组练习2【连续第二十九天】