0
点赞
收藏
分享

微信扫一扫

【算法】leetCde之反转链表(第206题)

fbd4ffd0717b 2022-01-31 阅读 46

一、题目

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。

二、示例

![![在这里插入图片描述](https://img-blog.csdnimg.cn/ad7292522f9b4351927a7c4e65220578.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAd3V3ZXVoYWk=,size_20,color_FFFFFF,t_70,g_se,x_1](https://img-blog.csdnimg.cn/1b790f6880f04a1693bc01fbec85e9c3.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAd3V3ZXVoYWk=,size_10,color_FFFFFF,t_70,g_se,x_16

输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]

代码实现

链表节点

public class ListNode {
    int val;
    ListNode next;
    ListNode(){}
    ListNode(int val){
        this.val = val;
    }
    ListNode(int val, ListNode next){
   		this.val = val;
   		this.next = next;
   	}
}

遍历

	/*
	*利用前后指针,解决问题
	*/
	public ListNode reverseList(ListNode head) {
		if(head == null) {
			return head;
		}
		ListNode curr = head; //当前指针
		ListNode preNode = null; //翻转的下一个节点
		while(curr != null) {
			ListNode next = curr.next; //保存下一个节点
			curr.next = preNode; //将下一个节点指向前一个节点
			preNode = curr;
			curr = next;
		}
		return preNode;
	}

时间和空间情况
在这里插入图片描述

举报

相关推荐

0 条评论