题解 | #反转链表#

反转链表

http://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca

递归实现
1、确定函数返回值及参数

ListNode* reverse(ListNode* pre, ListNode* cur)

2、确定递归终止条件

if(cur == nullptr)
    return pre;

3、确定递归单层逻辑

ListNode* temp = cur->next;
cur->next = pre;

最终完整代码

class Solution {
public:
    ListNode* ReverseList(ListNode* pHead) {
        return reverse(nullptr, pHead);
    }

    //递归实现
    ListNode* reverse(ListNode* pre, ListNode* cur){
        if(cur == nullptr)
            return pre;
        ListNode* temp = cur->next;
        cur->next = pre;
        return reverse(cur, temp);
    }
};
全部评论

相关推荐

酷酷我灵儿帅:这去不去和线不线下面说实话没啥关系
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务