算法-第四版-练习1.3.30解答

来源:互联网 发布:迅捷网络登录密码多少 编辑:程序博客网 时间:2024/06/04 17:44

问题

编写一个函数,接受一条链表的首结点作为参数,(破坏性地)将链表反转并返回结果链表的首结点。

解决思路


代码

        public Node<Item> reverse()    {        Node<Item> oldFirst = first;;        first = null;        while (oldFirst != null)        {            Node<Item> second = oldFirst.next;            oldFirst.next = first;            first = oldFirst;            oldFirst = second;        }        return first;    }    

测试代码:

/** * Description :  * Author      : mn@furzoom.com * Date        : Oct 25, 2016 3:08:48 PM * Copyright (c) 2013-2016, http://furzoom.com All Rights Reserved. */package com.furzoom.lab.algs.ch103;/** * ClassName    : E10330 <br> * Function     : TODO ADD FUNCTION. <br> * date         : Oct 25, 2016 3:08:48 PM <br> *  * @version  */public class E10330{    public static void main(String[] args)    {        LinkList<String> ll = new LinkList<String>();        ll.append("a");        ll.append("B");        ll.append("c");        ll.append("D");        ll.append("e");                ll.printList();        ll.reverse();        System.out.println("After reverse list:");        ll.printList();    }}    

结果:

aBcDeAfter reverse list:eDcBa


算法-第四版-1.3 背包、队列和栈-习题索引汇总

算法-第四版习题索引汇总


0 0