zoukankan      html  css  js  c++  java
  • 链表:反转链表

    反转链表。
    反转链表,常用的方法有就地反转,新建链表反转,栈反转,递归反转

    就地反转

    比如,现有链表1->2->3->4->5,首先,将1->null,接着向下一个节点2迭代,将2->1,接着向下一个节点3迭代,将3->2,也就是变成了3->2->1,依此类推。
    如下:

    public ListNode reserveListNode(ListNode head)  {
    	   ListNode prev=null;
    	    ListNode curr=head;
    	   while( curr!=null){
             //先记住下一个节点
    		 ListNode nextNode=curr.next;    
             //将当前节点的指针,指向"上一个节点",形成反转
    		 curr.next=prev;              
            //存储当前节点,以便作为迭代后的"上一个节点"。
    		 prev=curr;                    
             //向下一个节点迭代
    		 curr=nextNode;              
    	}
    }
    

    栈反转

    栈具有先进后出的特性。将链表的节点逐个push进栈里面,再pop出来,就完成了链表的反转

  • 相关阅读:
    NOIp2018集训test-10-17 (bike day3)
    NOIp2018集训test-10-16 (bike day2)
    django简介中
    django简介上
    bootstrap
    jQuery简介
    js完整篇
    css完结
    css三
    前端二与css开篇
  • 原文地址:https://www.cnblogs.com/expiator/p/10630481.html
Copyright © 2011-2022 走看看