zoukankan      html  css  js  c++  java
  • 剑指Offer-15.反转链表(C++/Java)

    题目:

    输入一个链表,反转链表后,输出新链表的表头。

    分析:

    可以利用栈将链表元素依次压入栈中,再从栈中弹出元素重新建立链表,返回头节点。

    也可以在原有的链表上来翻转,先保存当前节点的下一个节点,然后将当前节点的next,指向当前节点的前一个节点,然后再将p和prev更新求解即可。

    程序:

    C++

    class Solution {
    public:
        ListNode* ReverseList(ListNode* pHead) {
            if(pHead == nullptr) return nullptr;
            ListNode* p = pHead;
            ListNode* pPrev = nullptr;      
            while(p){
                ListNode *pTemp = p->next;
                p->next = pPrev;
                pPrev = p;
                p = pTemp;
            }
            return pPrev;
        }
    };

    Java

    public class Solution {
        public ListNode ReverseList(ListNode head) {
            if(head == null) return null;
            ListNode p = head;
            ListNode pPrev = null;
            while(p != null){
                ListNode pTemp = p.next;
                p.next = pPrev;;
                pPrev = p;
                p = pTemp;
            }
            return pPrev;
        }
    }
  • 相关阅读:
    根据用户行为发送客服消息
    tp5链接访问
    统计每天分享次数总和
    csv中文乱码
    Jupyter Notebook命令
    Laplace(拉普拉斯)算子
    Sobel算子
    Opencv图像连通域
    Opencv常用函数讲解
    12306 Pytho抢票代码
  • 原文地址:https://www.cnblogs.com/silentteller/p/11879333.html
Copyright © 2011-2022 走看看