当前位置: 首页 > 面试题库 >

手写代码:反转链表 (Java 版)

令狐灿
2023-03-14
本文向大家介绍手写代码:反转链表 (Java 版)相关面试题,主要包含被问及手写代码:反转链表 (Java 版)时的应答技巧和注意事项,需要的朋友参考一下

参考回答:

public class ListNode {
public int data;
public ListNode next;
}
public ListNode reverseList(ListNode pHead){
    ListNode pReversedHead = null; //反转过后的单链表存储头结点
    ListNode pNode = pHead; //定义pNode指向pHead;
    ListNode pPrev = null; //定义存储前一个结点

    while(pNode != null){
        ListNode pNext = pNode.next; //定义pNext指向pNode的下一个结点
        if(pNext==null){ //如果pNode的下一个结点为空,则pNode即为结果
            pReversedHead = pNode;
        }

        pNode.next = pPrev; //修改pNode的指针域指向pPrev
        pPrev = pNode; //将pNode结点复制给pPrev
        pNode = pNext; //将pNode的下一个结点复制给pNode
    }
	return pReversedHead;
}

 

 类似资料:
  • 本文向大家介绍手写代码:反转链表相关面试题,主要包含被问及手写代码:反转链表时的应答技巧和注意事项,需要的朋友参考一下 参考回答:  

  • 本文向大家介绍请你手写链表反转相关面试题,主要包含被问及请你手写链表反转时的应答技巧和注意事项,需要的朋友参考一下 参考回答:  

  • 本文向大家介绍Java语言实现反转链表代码示例,包括了Java语言实现反转链表代码示例的使用技巧和注意事项,需要的朋友参考一下 问题描述 定义一个函数,输入一个链表的头结点,反转该链表并输出反转后的链表的头结点。链表结点如下: 思路1: 要想反转链表,对于结点i,我们要把它的next指向它的前趋,因此我们需要保存前趋结点,同时,如果我们已经把i的next重新赋值,会无法找到i的后继,因此,在重新赋

  • 本文向大家介绍手写代码:循环链表插入元素?相关面试题,主要包含被问及手写代码:循环链表插入元素?时的应答技巧和注意事项,需要的朋友参考一下 参考回答:   //插入元素 //current->next 0号节点的地址 //若第一次插入节点 //若头插法 current仍然指向头部 //(原因是:跳0步,没有跳走) 中间第一种情况

  • 本文向大家介绍单链表反转python实现代码示例,包括了单链表反转python实现代码示例的使用技巧和注意事项,需要的朋友参考一下 单链表的反转可以使用循环,也可以使用递归的方式 1.循环反转单链表 循环的方法中,使用pre指向前一个结点,cur指向当前结点,每次把cur->next指向pre即可。 代码: 结果: 4 3 2 1 >>> 2.递归实现单链表反转 运行结果同上。 总结 以上就是本文

  • NowCoder 解题思路 递归 // java public ListNode ReverseList(ListNode head) { if (head == null || head.next == null) return head; ListNode next = head.next; head.next = null; ListNode