Java:当需要创建链表并返回头结点的时候

创建链表,或者改变已有链表的时候,如果我们只声明了一个结点,这个结点需要不断地往链表尾部移动,最后我们无法返回该结点作为头结点。
此时,我们可以用下面这个方法来解决这个问题。(注意看注释部分

可以参考leetcode算法题23. 合并K个排序链表中的分治算法解法,将会遇到这个问题,可以用这个方法来解决。

class ListNode {int val;ListNode next;ListNode(int x) { val = x; }
}class Solution {public ListNode test(){ListNode head = new ListNode(0);/*** 可以看成传head的引用给res,* 对res.next进行操作也会改变head.next,* 而当我们将res往链表尾部移动时,head并不会随之移动。*/ListNode res = head;/*** 移动res进行创建链表或者修改已有链表,* 始终只对res.next进行操作,(目的:不对head头结点造成影响)* 最终只需返回head.next就可以得到链表的头结点,* 此时该头结点也是链表的子结点,其数据也有实际意义。*//*** ...* ...* ...* ...一段对res结点进行链表相关操作的代码*/return head.next;}
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部