侧边栏壁纸
博主头像
惊羽博主等级

hi ,我是惊羽,前生物学逃兵,现系统工程沉迷者 . 贝壳签约工程师 , 曾被雇佣为 联拓数科 · 支付研发工程师 、京东 · 京东数科 · 研发工程师、中国移动 · 雄安产业研究院 · 业务中台技术负责人 .

  • 累计撰写 102 篇文章
  • 累计创建 14 个标签
  • 累计收到 14 条评论

算法练习(10) - 反转链表(O(n))

惊羽
2021-06-22 / 0 评论 / 0 点赞 / 314 阅读 / 485 字
温馨提示:
本文为原创作品,感谢您喜欢~
class Solution {
    public ListNode reverseList(ListNode head) {
	ListNode temp = null;
	ListNode res = null;
        while(head != null){
		// 3. 缓存结果指针
		temp = res;
		// 2. 缓存头删指针
		res = head;
		// 1. 头删
 		head = head.next;      		
		// 4. 头插
		res.next = temp;
	}
        return res;
    }
}

思路 : 首先是1. 头删 ,头删之前需要把头结点给到结果指针,这样才能头插 ,于是 2. 缓存头删指针 但是返回指针如果指引到最新的头插节点,那么上次头插的结果会丢失,所以需要先将返回指针指向的节点引用缓存起来 ,于是 3. 缓存结果指针 ,最后 4. 头插 将结果指针指向的最新节点 头插到老的 返回头结点上;

0
广告 广告

评论区