zoukankan      html  css  js  c++  java
  • 剑指offer-反转链表

    反转链表

    一、题目描述

    输入一个链表,反转链表后,输出新链表的表头。
    (看过答案和测试之后,题目隐藏条件是要求链表是不带头结点的)

    二、题目思路

    就是用三个指针,head、pre、next,head之前都是已经反转好了的链表,next及之后的结点属于还没有反转的链表。

    三、算法实现

    3.1、Java实现

    /*
    public class ListNode {
        int val;
        ListNode next = null;
    
        ListNode(int val) {
            this.val = val;
        }
    }*/
    public class Solution {
        public ListNode ReverseList(ListNode head) {
            ListNode pre=null;
            ListNode next=null;
            
            while(head!=null){
                next=head.next;
                head.next=pre;
                pre=head;
                head=next;
            }
            return pre;
        }
    }
    

    以下画了一个示意图

    3.2、C++实现

    同样的思路:

    /*
    struct ListNode {
    	int val;
    	struct ListNode *next;
    	ListNode(int x) :
    			val(x), next(NULL) {
    	}
    };*/
    class Solution {
    public:
        ListNode* ReverseList(ListNode* pHead) {
            ListNode *pre=NULL;
            ListNode *next=NULL;
            
            while(pHead!=NULL){
                next=pHead->next;
                pHead->next=pre;
                pre=pHead;
                pHead=next;
            }
            
            return pre;
        }
    };
    
    keep going
  • 相关阅读:
    BETA 版冲刺前准备
    alpha事后诸葛亮
    alpha冲刺10
    alpha冲刺9
    alpha冲刺8
    alpha冲刺7
    alpha冲刺6
    alpha冲刺5
    第十一次作业
    Alpha冲刺一 (10/10)
  • 原文地址:https://www.cnblogs.com/MarkKobs-blog/p/10407294.html
Copyright © 2011-2022 走看看