首页 > 专栏 > 数据结构与算法 > 文章详情
复杂度为O(n)的链表反转遍历方法笔记 发布于:2021-04-21 15:46:05   来源:力扣   查看:46  讨论:3
8ga易塔云建站-模板下载,web开发资源,技术博客
8ga易塔云建站-模板下载,web开发资源,技术博客
详细图解过程(纯exl手打)。8ga易塔云建站-模板下载,web开发资源,技术博客
8ga易塔云建站-模板下载,web开发资源,技术博客
8ga易塔云建站-模板下载,web开发资源,技术博客
8ga易塔云建站-模板下载,web开发资源,技术博客
8ga易塔云建站-模板下载,web开发资源,技术博客
Java版本:
public ListNode reverseList (ListNode head) {8ga易塔云建站-模板下载,web开发资源,技术博客
    ListNode prev = null;//让prev指针指向null8ga易塔云建站-模板下载,web开发资源,技术博客
    ListNode curr = head;//让当前指针指向head8ga易塔云建站-模板下载,web开发资源,技术博客
    while (curr != null) {8ga易塔云建站-模板下载,web开发资源,技术博客
        ListNode next = curr.next;8ga易塔云建站-模板下载,web开发资源,技术博客
        curr.next = prev;//此时第一次执行,指向着null8ga易塔云建站-模板下载,web开发资源,技术博客
        prev = curr;8ga易塔云建站-模板下载,web开发资源,技术博客
        curr = next;8ga易塔云建站-模板下载,web开发资源,技术博客
    }8ga易塔云建站-模板下载,web开发资源,技术博客
    return prev;8ga易塔云建站-模板下载,web开发资源,技术博客
}
JavaScript版:
function reverseList (head) {8ga易塔云建站-模板下载,web开发资源,技术博客
    let prev = null;//any类型8ga易塔云建站-模板下载,web开发资源,技术博客
    let curr = head;//any类型8ga易塔云建站-模板下载,web开发资源,技术博客
    while (curr != null) {8ga易塔云建站-模板下载,web开发资源,技术博客
        const next = curr.next;//强声明,值不可变8ga易塔云建站-模板下载,web开发资源,技术博客
        curr.next = prev;8ga易塔云建站-模板下载,web开发资源,技术博客
        prev = curr;8ga易塔云建站-模板下载,web开发资源,技术博客
        curr = next;8ga易塔云建站-模板下载,web开发资源,技术博客
    }8ga易塔云建站-模板下载,web开发资源,技术博客
    return prev;8ga易塔云建站-模板下载,web开发资源,技术博客
}
8ga易塔云建站-模板下载,web开发资源,技术博客
其实定义的next算是一个临时变量,tmp。这个tmp会将curr的下一个节点临时保存起来。所以其实是:
class Solution {8ga易塔云建站-模板下载,web开发资源,技术博客
    public ListNode reverseList(ListNode head) {8ga易塔云建站-模板下载,web开发资源,技术博客
        //申请节点,pre和 cur,pre指向null8ga易塔云建站-模板下载,web开发资源,技术博客
        ListNode pre = null;8ga易塔云建站-模板下载,web开发资源,技术博客
        ListNode cur = head;8ga易塔云建站-模板下载,web开发资源,技术博客
        ListNode tmp = null;8ga易塔云建站-模板下载,web开发资源,技术博客
        while(cur!=null) {8ga易塔云建站-模板下载,web开发资源,技术博客
            //记录当前节点的下一个节点8ga易塔云建站-模板下载,web开发资源,技术博客
            tmp = cur.next;8ga易塔云建站-模板下载,web开发资源,技术博客
            //然后将当前节点指向pre8ga易塔云建站-模板下载,web开发资源,技术博客
            cur.next = pre;8ga易塔云建站-模板下载,web开发资源,技术博客
            //pre和cur节点都前进一位8ga易塔云建站-模板下载,web开发资源,技术博客
            pre = cur;8ga易塔云建站-模板下载,web开发资源,技术博客
            cur = tmp;8ga易塔云建站-模板下载,web开发资源,技术博客
        }8ga易塔云建站-模板下载,web开发资源,技术博客
        return pre;8ga易塔云建站-模板下载,web开发资源,技术博客
    }8ga易塔云建站-模板下载,web开发资源,技术博客
}

评论

  • 匿名