力扣简206 反转链表
作者:互联网
链表 递归 迭代
我现在认为迭代是每一步处理一个问题,形成一个比原来规模小但是处理方法相同的子问题,直至处理完。
看了下发现链表和树里的迭代 都用while做结束条件 整体放在一个大循环体内 一步一步处理 我下面列的这个方法应该也是迭代
自己做的就常规想法:直接取下来头,依次前插。
package leetcode01; /*给你单链表的头节点 head,请你反转链表,并返回反转后的链表。*/ public class Solution206 { public static ListNode reverseList(ListNode head) { ListNode res=null; ListNode flag=res; while(head!=null) { res=head; head=head.next; res.next=flag; flag=res; } return res; } public static void main(String[] args) { // TODO Auto-generated method stub ListNode head=new ListNode(1,new ListNode(2,new ListNode(3))); System.out.println(reverseList(head)); } }
题解一:迭代
public static ListNode reverseList(ListNode head) { ListNode pre=null; ListNode now=null; while(head!=null) { now=head; head=head.next; now.next=pre; pre=now; } return now; }
题解二:递归
标签:力扣,head,now,ListNode,206,res,链表,null 来源: https://www.cnblogs.com/ayuanjiejie/p/16326425.html