美文网首页
leetcode 206. 反转链表

leetcode 206. 反转链表

作者: Source_Chang | 来源:发表于2020-10-12 17:19 被阅读0次

leetcode

链表结构:

typedef struct Node {
public:
    int value;
    struct Node *next;
} *NodePtr;

递归:
C++:

NodePtr ReverseNodeList::recursiveReverseNode(NodePtr head) {
    
    if ( !head || !(head -> next) ) {
        
        return head;
    }
    
    NodePtr newHead = recursiveReverseNode( head -> next );
    if ( !newHead ) {
        
        return head;
    }
    
    head -> next -> next = head;
    head -> next = NULL;
    
    return newHead;
}

非递归:
C++:

NodePtr ReverseNodeList::nonRecursiveReverseNode(NodePtr head) {
    
    NodePtr newHead = NULL;
    while ( head ) {
        
        NodePtr next = head -> next;
        head -> next = newHead;
        newHead = head;
        head = next;
    }

    return newHead;
}

相关文章

网友评论

      本文标题:leetcode 206. 反转链表

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