Java语言实现反转链表代码示例

网友投稿 261 2023-03-26


Java语言实现反转链表代码示例

问题描述

定义一个函数,输入一个链表的头结点,反转该链表并输出反转后的链表的头结点。链表结点如下:

public class ListNode {

int val;

ListNode next = null;

ListNode(int val) {

this.val = val;

}

}

思路1:

要想反转链表,对于结点i,我们要把它的next指向它的前趋,因此我们需要保存前趋TnHSHw结点,同时,如果我们已经把i的next重新赋值,会无法找到i的后继,因此,在重新赋值之前,我们要保存i的后继。

代码:

public ListNode ReverseList(ListNode head) {

if(head == null){

return null;

}

ListNode rHead = null;

ListNhttp://ode prior = null;//store prior

ListNode q = head;//store current

while(q != null){

ListNode next = q.next;//store the next

if(next == null){

rHead = q;

}

q.next = prior;

prior = q;

q = next;

}

return rHead;

}

思路2:

使用递归的思想(暂时没有想到,因为如果用递归的话,每次应该是:链表的第一个结点&TnHSHwlt;—递归返回的链表的尾指针,但是这样的话就无法获得反转后的头指针了。)后面再思考吧。

总结

以上就是本文关于java语言实现反转链表代码示例的全部内容,感兴趣的朋友可以参阅:Java编程删除链表中重复的节点问题解决思路及源码分享、Java编程实现从尾到头打印链表代码实例以及本站其他相关专题,希望对大家有所帮助。如有不足之处,欢迎留言指出。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:飞控系统接口管理平台(飞控系统接口管理平台怎么用)
下一篇:JVM 心得分享(加载 链接 初始化)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~