LeetCode - Java 206 反转链表
发布日期:2021-06-20 05:37:27
浏览次数:7
分类:技术文章
本文共 1030 字,大约阅读时间需要 3 分钟。
题目描述
206#反转链表
反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL
进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题?
解法:
1. 迭代 -- 头插法
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode reverseList(ListNode head) { ListNode root = null; while(head!=null){ ListNode temp = head; //获取头结点 head=head.next; temp.next=root; //头插新链表 root=temp; } return root; }}
方法二:递归法
从尾部开始逆转,每次将前一个节点插到已经逆转好的尾部。
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode reverseList(ListNode head) { if(head==null) return null; if(head.next==null) return head; ListNode second =head.next; ListNode rest=reverseList(second); second.next=head; head.next=null; return rest; }}
转载地址:https://blog.csdn.net/h2453532874/article/details/90901323 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月05日 00时31分42秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!