文档章节

单链表反序

l
 lzg14
发布于 2014/05/29 16:04
字数 265
阅读 296
收藏 7

面试题: 将a-z的26个字母加入一个单链表,输出,然后反序后再输出

/**
 * 
 * @author Jason Li 2014-5
 * 
 *  面试题: 要求将a-z的26个字母加入一个单链表,输出,然后反序后再输出
 * 
 */

public class SingleLinkedListTest {

	public static void main(String[] args) {
		SingleLinkedList sll = new SingleLinkedList();
		
		for (int i = 0; i < 26; i++) {
			sll.add((char)('a' + i));
		}		
		sll.show();		
		sll.reverse();	
		sll.show();
	}

}

//简单的单链表
class SingleLinkedList {

	private Node head;// 头指针
	private Node tail;// 尾指针

	public SingleLinkedList() {
		Node tem = new Node();
		tem.content = 0;
		tem.next = null;
		this.head = this.tail = tem;
	}

	//在链表尾部添加
	public void add(Object o) {
		Node tem = new Node();
		tem.content = o;
		tem.next = null;
		tail.next = tem;
		tail = tem;
	}

	// 反序
	public void reverse() {
		Node insert_point = head.next; //插入位置
		Node cur = insert_point.next; //待插入的节点
		Node tmp;
		
		while (cur != null) {
			tmp = cur.next; //下一个待插入节点
			cur.next = insert_point;//把cur节点插入到插入点之前,
			insert_point = cur; //然后当前节点下变为插入点
			cur = tmp; 
		}
		tail = head.next;
		tail.next = null;
		head.next = insert_point;

	}

	// 显示
	public void show() {
		Node cur = head.next;
		while (cur != null) {
			System.out.print(cur.content);
			cur = cur.next;
			if (cur != null)
				System.out.print("->");
		}
		System.out.println();
	}

	// 节点类
	private class Node {
		public Object content;
		public Node next;
	}

}

 

© 著作权归作者所有

共有 人打赏支持
l
粉丝 8
博文 29
码字总数 11715
作品 0
朝阳
链表各类操作详解

仅供学习使用,附转载连接:http://blog.csdn.net/hackbuteer1/article/details/6591486 链表概述    链表是一种常见的重要的数据结构。它是动态地进行存储分配的一种结构。它可以根据需要...

陈国成
2017/06/17
0
0
第十章 Scala 容器(二):如何选择一个合适的容器类

解决方案 实际上Scala的容器分为三大类:Seq,Map,Set。Seq容器线性地存储了元素,这些元素或者被以数组加索引的形式存储,或者使用链表的方式存储。Map存储的是键值对,当你想用(key-val...

阿拉德大陆的魔法师
2016/04/01
242
0
leetcode 2 Add Two Numbers 方法2

You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers ......

刘小米
2015/01/30
0
2
反序存储链表

不接触算法相关的东西快两年多了,真的是生疏了。初步计划是每周抽出些时间在LeetCode上作两道算法题。 明有科举八股,今有LeetCode。 八股定格式而取文采心意,LeetCode定题目且重答案背诵。...

吴七禁
2017/11/11
0
0
常见集合源码分析(基于jdk8)

ArrayList 实现于、接口。可以插入空数据,也支持随机访问,相当于动态数据,其中最重要的两个属性分别是:数组,以及大小,默认为10 由于ArrayList是基于动态数组实现的,所以并不是所有的空...

asdf08442a
08/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

RabbitMq异常处理

1.查找指定文件位置 find . -name "*erlang.cookie" 2.Rabbitmq异常 ===========根据提示,应该是Erlang的cookie出现问题 attempted to contact: ['rabbit@DESKTOP-RVK1IHE'] rabbit@DESKTO......

zhaochaochao
18分钟前
2
0
Java虚拟机学习笔记

jconsole的连接 JConsole的远程连接 JConsole远程连接配置(用VisualVM进行远程连接的配置和JConsole是一摸一样滴) JVM之jconsole远程连接配置...

OSC_fly
19分钟前
1
0
区块链教程以太坊源码分析downloader-peer源码分析

  兄弟连区块链教程以太坊源码分析downloader-peer源码分析,区块链行业正逐渐褪去发展之初的浮躁、回归理性,表面上看相关人才需求与身价似乎正在回落。但事实上,正是初期泡沫的渐退,让...

兄弟连区块链入门教程
21分钟前
2
0
ubuntu 自定义记录用户登录以及操作日志

root@ms:~# cd /etc#更改之前先备份,养成良好的习惯,否则肠子都要悔青了root@ms:/etc# cp profile profile.bakroot@ms:/etc# vi profile 在文章末尾加入下列shell脚本 history US...

Marhal
21分钟前
1
0
liunx 下使用rpm进行软件卸载

rpm -qa | grep php 列出所有的php相关的rpm包 rpm -e xxx 删除包

bengozhong
21分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部