美文网首页
反转链表

反转链表

作者: 我的天气很好啦 | 来源:发表于2018-10-09 21:15 被阅读0次

    🍞环境:牛客的编译环境
    🍰语言:JavaScript
    ☕️难点:没有考虑到底数为0,指数为负数和正数的不同情况。
    🍊题目:输入一个链表,反转链表后,输出新链表的表头。
    🌟解题思路:我自己的方法很简单..还是遍历一遍链表,一边遍历一边存储到数组arr中,先将该数组reverse,之后再for循环该数组,设置当前i结点的next为i+1结点。
    最后再返回第0个结点。
    🍇我的代码:

    /*function ListNode(x){
        this.val = x;
        this.next = null;
    }*/
    function ReverseList(pHead)
    {
        // write code here
        var node = pHead,
            arr = [],
            nHead = null;
        if(pHead != null){
            while(node){
                arr.push(node);
                if(node.next == null)
                    break;
                node = node.next;
            }
            arr = arr.reverse();
            for(let i = 0; i < arr.length; i++){
                arr[i].next = arr[i + 1];
                if(i == arr.length - 1)
                    arr[i].next = null;
            }
            return arr[0];
        }
        else return null;
        
    }
    🍎大佬的方法(目前还没看懂):
    

    链接:
    public class Solution {

    public static ListNode ReverseList(ListNode head) {

    if(head==null)

    return null;

    ListNode reversedHead=null;

    ListNode current=head;

    ListNode tmp=null;

    ListNode pre=null;

    while(current!=null){

    tmp=current.next;

    current.next=pre;

    if(tmp==null)

    reversedHead=current;

    pre=current;

    current=tmp;

    }

    return reversedHead;

    }

    }

    
    

    相关文章

      网友评论

          本文标题:反转链表

          本文链接:https://www.haomeiwen.com/subject/llayaftx.html