JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

腾讯算法面试,反转一个链表题解,java示例

wys521 2024-11-02 14:58:24 精选教程 66 ℃ 0 评论

保证一个算法的意义,在于保证算法中变量的意义

在反转过程中,有三个节点的定义是不变的。

在这里我们可以定义三个指针,分别指向

1、初始链表头节点

2、初始链表头节点的下一个节点

3、反转链表节点

在程序运行过程中,要始终保证这个三个节点的含义正确,就能保证运行的程序错误。


class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}

//题解
public class Solution {
    public ListNode ReverseList(ListNode head) {
        if(null==head||head.next==null){
            return head;
        }

        ListNode currentHead=head;
        ListNode revertHead=null;
        ListNode currenNext=head.next;
        while(currentHead.next!=null){
            currentHead.next=revertHead;
            revertHead=currentHead;
            currentHead=currenNext;
            currenNext=currentHead.next;
        }
        currentHead.next=revertHead;
        revertHead=currentHead;
        return revertHead;

    }
}

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表