喷破天 2015-12-07 14:03 采纳率: 100%
浏览 1411
已采纳

数据结构的问题,反转链式表

如下
class Node{
int value;
Node next;
}

Node change(Node head){
}

需要让change()函数实现链式表的反转,head为第一个Node,后面可能有多个Node,
比如A->B->C变成C->B->A,结果返回C,要求使用java代码写出来,能够正常运行

  • 写回答

1条回答 默认 最新

  • Avalonz_ 2015-12-07 14:53
    关注

    //翻转链表的测试类,功能我就不说了,很明显的。。。

    public class myTest {

    public static void main(String[] args) {
        myTest t=new myTest();
        Node l=t.new Node(0,null);
        Scanner in=new Scanner(System.in);
        Node nodelist=l.init(in.nextInt());
        l.display(nodelist);
        nodelist=l.change(nodelist);
        l.display(nodelist);
        in.close();
    }
    
    class Node
    {
        private int value;
        private Node next;
    
        public Node(int value,Node next)
        {
            this.value=value;
            this.next=next;
        }
    
        public Node init(int num)
        {
            Node temp=new Node(0,null);
            Node p=temp;
            Scanner in=new Scanner(System.in);
            for(int i=0;i<num;i++)
            {
                int value=in.nextInt();
                Node t=new Node(value,null);
                p.next=t;
                p=p.next;
            }
            in.close();
            return temp.next;
        }
    
        public Node change(Node head)
        {
            Node newHead=new Node(0,head);
            Node last;
            for(last=newHead.next;last.next!=null;last=last.next);
            while(newHead.next!=last)
            {
                Node temp=newHead.next;
                newHead.next=temp.next;
                temp.next=last.next;
                last.next=temp;
            }
            return newHead.next;
        }
    
        public void display(Node head)
        {
            for(Node t=head;t!=null;t=t.next)
                System.out.print(t.value+" ");
            System.out.println();
        }
    }
    

    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料