牛客题霸--反转链表题解

反转链表

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

反转链表
https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca

java版本答案:
public class Solution {
public ListNode ReverseList(ListNode head) {

    ListNode temp = head;
    ListNode result = null;

    if(head == null){
        return null;
    }

    while(temp.next!=null){
        head = temp.next;
        temp.next = result;
        result = temp;
        temp = head;
    }
    temp.next = result;
    result = temp;

    return result;
}

}

链表是c语言里面特有的概念,对于java开发来说可能有点陌生。

用两个结点来完成链表反转的操作,result是存在最终的结果的,temp是存在遍历链表的暂态。

总体思路就是从头链表开始依次遍历,然后采用头插法分别将元素插入到result中。

需要注意的是由于while循环的条件是temp.next != null,因此遍历结束之后,需要将原链表的最后一个结点插入到result中。

全部评论

相关推荐

06-05 19:46
已编辑
武汉大学 后端
点赞 评论 收藏
分享
找个工作 学历是要卡的 要求是高的 技能不足是真的 实习经验是0的 简历无处可写是事实的 钱不好赚是真的 想躺平又不敢躺 也不甘心躺 怕自己的灵感和才华被掩埋甚至从未被自己发现 又质疑自己是否真正有才华
码农索隆:你现在啊,你心里都明白咋回事,但是你没办法改变现状,一想到未来,你又没有信心狠下心来在当下努力。 得走出这种状态,不能一直困在那里面,哪不行就去提升哪,你一动不动那指定改变不了未来,动起来,积少成多才能越来越好
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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