xrZ易塔云建站-模板下载,web开发资源,技术博客xrZ易塔云建站-模板下载,web开发资源,技术博客详细图解过程(纯exl手打)。xrZ易塔云建站-模板下载,web开发资源,技术博客
xrZ易塔云建站-模板下载,web开发资源,技术博客
xrZ易塔云建站-模板下载,web开发资源,技术博客xrZ易塔云建站-模板下载,web开发资源,技术博客xrZ易塔云建站-模板下载,web开发资源,技术博客Java版本:
public ListNode reverseList (ListNode head) {xrZ易塔云建站-模板下载,web开发资源,技术博客
ListNode prev = null;//让prev指针指向nullxrZ易塔云建站-模板下载,web开发资源,技术博客
ListNode curr = head;//让当前指针指向headxrZ易塔云建站-模板下载,web开发资源,技术博客
while (curr != null) {xrZ易塔云建站-模板下载,web开发资源,技术博客
ListNode next = curr.next;xrZ易塔云建站-模板下载,web开发资源,技术博客
curr.next = prev;//此时第一次执行,指向着nullxrZ易塔云建站-模板下载,web开发资源,技术博客
prev = curr;xrZ易塔云建站-模板下载,web开发资源,技术博客
curr = next;xrZ易塔云建站-模板下载,web开发资源,技术博客
}xrZ易塔云建站-模板下载,web开发资源,技术博客
return prev;xrZ易塔云建站-模板下载,web开发资源,技术博客
}
JavaScript版:
function reverseList (head) {xrZ易塔云建站-模板下载,web开发资源,技术博客
let prev = null;//any类型xrZ易塔云建站-模板下载,web开发资源,技术博客
let curr = head;//any类型xrZ易塔云建站-模板下载,web开发资源,技术博客
while (curr != null) {xrZ易塔云建站-模板下载,web开发资源,技术博客
const next = curr.next;//强声明,值不可变xrZ易塔云建站-模板下载,web开发资源,技术博客
curr.next = prev;xrZ易塔云建站-模板下载,web开发资源,技术博客
prev = curr;xrZ易塔云建站-模板下载,web开发资源,技术博客
curr = next;xrZ易塔云建站-模板下载,web开发资源,技术博客
}xrZ易塔云建站-模板下载,web开发资源,技术博客
return prev;xrZ易塔云建站-模板下载,web开发资源,技术博客
}
xrZ易塔云建站-模板下载,web开发资源,技术博客其实定义的next算是一个临时变量,tmp。这个tmp会将curr的下一个节点临时保存起来。所以其实是:
class Solution {xrZ易塔云建站-模板下载,web开发资源,技术博客
public ListNode reverseList(ListNode head) {xrZ易塔云建站-模板下载,web开发资源,技术博客
//申请节点,pre和 cur,pre指向nullxrZ易塔云建站-模板下载,web开发资源,技术博客
ListNode pre = null;xrZ易塔云建站-模板下载,web开发资源,技术博客
ListNode cur = head;xrZ易塔云建站-模板下载,web开发资源,技术博客
ListNode tmp = null;xrZ易塔云建站-模板下载,web开发资源,技术博客
while(cur!=null) {xrZ易塔云建站-模板下载,web开发资源,技术博客
//记录当前节点的下一个节点xrZ易塔云建站-模板下载,web开发资源,技术博客
tmp = cur.next;xrZ易塔云建站-模板下载,web开发资源,技术博客
//然后将当前节点指向prexrZ易塔云建站-模板下载,web开发资源,技术博客
cur.next = pre;xrZ易塔云建站-模板下载,web开发资源,技术博客
//pre和cur节点都前进一位xrZ易塔云建站-模板下载,web开发资源,技术博客
pre = cur;xrZ易塔云建站-模板下载,web开发资源,技术博客
cur = tmp;xrZ易塔云建站-模板下载,web开发资源,技术博客
}xrZ易塔云建站-模板下载,web开发资源,技术博客
return pre;xrZ易塔云建站-模板下载,web开发资源,技术博客
}xrZ易塔云建站-模板下载,web开发资源,技术博客
}