题解 | #反转链表#

反转链表

https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca

import java.util.*;

/*
 * public class ListNode {
 *   int val;
 *   ListNode next = null;
 *   public ListNode(int val) {
 *     this.val = val;
 *   }
 * }
 */

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可

     *
     * 
     * @param head ListNode类 
     * @return ListNode类
     */
    public ListNode ReverseList (ListNode head) {
        ListNode p=null;
        ListNode t=null;
        if(head!=null){
        p=head.next;        
        t=p;
        head.next=null;                                              
        }
        
        while(head!=null&&t!=null){
         t=t.next;
         p.next=head;
         head=p;
         p=t;
        }
       
   
return head;
        // write code here
    }
}

本质上就是创建一个点p和t,跟在点head后面,每次先把t后移,然后head与p的顺序反转,之后将head移到p处,p移到t处就搞定了,当然凡是出现了node.next语句都要加上node!=null的判断,最后返回原链表的最后一个点即现链路的第一个点head(此head早已通过循环变换不再是原链表的第一个点了)即可了。

全部评论

相关推荐

说又不是不能用的斑马...:把中学和居住地删了,很多私企歧视北京人。别写你炒股,hr觉得你炒股赚的比工资高多了,很有可能干不了几天就跑路专职炒股了。只要你不是找金融行业的,这就是个超级减分项
点赞 评论 收藏
分享
机械打工仔:我来告诉你原因,是因为sobb有在线简历,有些HR为了快会直接先看在线简历,初步感觉不合适就不会找你要详细的了
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务