单链表反转
来源:互联网 发布:中国产业安全数据指南 编辑:程序博客网 时间:2024/05/20 06:28
package src;import java.util.Stack;/* * 单链表反转 * author : Huixing Fang */public class ReverseLinkedList {static class Node {int value;Node next;Node(){}Node(int value, Node next){this.value = value;this.next = next;}}public ReverseLinkedList() {}//使用迭代方法public static Node reverseite(Node head){if (head==null) return null; // 如果传入的链表为空else {Node paresult = reverse(head.next); //反转除了头结点外的链表部分head.next = null;if (paresult==null) return head; //如果链表只有一个结点else { //如果链表有两个以上结点Node curr = paresult; //令curr指向除了头结点外的链表部分反转之后的链表while(true){if (curr.next == null) {//找到部分反转链表的最后一个结点,让它指向原始头结点curr.next = head; break;//将原始头结点放入反正链表最后一个结点,然后退出循环}else curr = curr.next;//若还没有到最后一个结点,则继续找下一个结点}return paresult;//返回反转后的链表}}}//用堆栈的方式,只要遍历一遍链表,把结点依次放入堆栈中。遍历结束后,//再从堆栈中取出结点,依次建立结点间的关系,即为反转的链表public static Node reverse(Node head){if (head==null) return head;Node revhead = null;Stack<Node> nodestack = new Stack<Node>();while(head!=null){//放入堆栈nodestack.push(head);head = head.next;}revhead = nodestack.pop(); Node curr = revhead;while(true){//从堆栈中取出结点,得到反转链表if (nodestack.size()>0){Node newpop = nodestack.pop();curr.next = newpop; //依次建立关系curr = newpop;}else{//处理最后一个结点curr.next = null;break;}}return revhead;}public static void printnodes(Node head){while(head!=null){System.out.println(head.value);head = head.next;}}public static void main(String[] args) {// TODO Auto-generated method stubNode head = null;//Node head = new Node(0, null);//Node head = new Node(0, new Node(1, null));//Node head = new Node(0, new Node(1, new Node(2, null)));Node result = reverse(head);printnodes(result);result = reverseite(head);printnodes(result);}}
0 0
- 单链表反转
- 单链表反转
- 单链表反转
- 反转单链表
- 单链表反转
- 反转单链表
- 单链表-反转
- 单链表反转
- 单链表反转
- 单链表反转
- 单链表反转
- 单链表反转
- 单链表反转
- 单链表反转
- 单链表反转
- 单链表反转
- 反转单链表
- 单链表反转
- 注入安卓进程,并hook java世界的方法
- Android 自定义View (三) 圆环交替 等待效果
- 黑马程序员---java线程Timer学习与总结
- nyoj Wythoff Game(暴力枚举)
- Android 自定义View (一)
- 单链表反转
- Android 自定义View (二) 进阶
- 学生教务信息查询与管理小助手
- 【信息安全系列】Linux主机安全检查
- 【MongoDB】Serveral common command of MongoDb
- 多线程队列的算法优化
- iPhone6今发售被指已变味 加价倒手成黄牛圈钱工具
- 最长回文子串
- cached-query 将缓存和查询数据库快速连接起来的轻类库