单向链表反转

对IT从业者来说,这是一个需要不断注入活力的行业,需要不断地迭代,能支持我持续迭的就是baidu or google。有人说为什么不去看书,这让我想起了星爷鹿鼎记中陈近南教韦小宝练绝世武功的片段,绝世武功秘籍目录就要看一两个月,绝世武功看完陈近南都要30年。最让我深恶痛绝的就是一群自己还没弄清楚就在社区上发表挨踢精英,把一个简单的问题弄得超级复杂,把一个需需要迅速迭代更新知识库的小白带到沟里不能自拔 。能简单说清楚的不要拖泥带水,能用图表说明的不要打字,最重要的就是自己还没弄清楚就不要去瞎指点。

想起当年我想了解链表反转是怎么回事,第一时间就在百度搜索框中输入:链表反转,搜出来N多个版本,把我弄得云里雾里。

链表反转就一句话:把相邻的节点指针指向交换,一直重复到下个节点为空结束。
单向链表反转_第1张图片
单向链表反转_第2张图片
单向链表反转_第3张图片

   public ListNode reverseList(ListNode first) {
        if(first == null){
            return first;
        }
        ListNode lastNode = null;
        ListNode nextNode  = first;
        do{
            ListNode tmp = nextNode.next;
            nextNode.next = lastNode;
            lastNode =  nextNode;
            nextNode = tmp;
        }while(nextNode != null);
        return lastNode;
    }

你可能感兴趣的