程序员是怎么学习算法的?把自己变笨,要进入计算机的世界,每次只能进行一步计算。最难的算法都是需要迭代理解,比如链表逆转,如果空间足够大,可以把所有链条断开并且都保存起来,用递归:头部的指针直接给临时指针,临时指针变头部指针继续循环,直到找到尾部的指针,然后头尾交换,完成转换
程序员是怎么学习算法的?
把自己变笨,要进入计算机的世界,每次只能进行一步计算。最难的算法都是需要迭代理解,比如链表逆转,如果空间足够大,可以把所有链条断开并且都保存起来,用递归:头部的指针直接给临时指针,临时指针变头部指针继续循环,直到找到尾部的指针,然后头尾交换,完成转换。public Node reverseList#28Node node#29 {
if#28no亚博体育de.next == null#29 {//当最后一个节点{pinyin:diǎn}的时候返回return node
Node temp = node.next//得到当前【qián】节点的下一个节点
Node returnNode = reverseList#28temp#29
temp.next = node//下一个节点的下《读:xià》一个节点为当前节点实现逆转
node.next = null//实现逆转前链《繁:鏈》表的头结点为为节点
return returnNode//返回逆转(zhuǎn)后的链表的头节点
}
如果没有大空间,就需要头指《pinyin:zhǐ》针自己迭代,保存头部的指针,头部的指针变头头部指针(第一次为尾部空),头头部指针变头指针,头指针变头部《练:bù》指zhǐ 针,这一轮结束,下轮开始,直到末尾。
public Node reverseList2#28Node node#29 {
Node frontNode = null//头结点逆转的时候前一个节点为(读:wèi)null
Node head澳门博彩Node = node//当[繁:當]前节点为头节点
Node tempNode//临时变量保bǎo 存下一个节点while#28headNode #21= null#29 {
tempNode = headNode.next
hea澳门博彩dNode.next = frontNode//实现逆转【pinyin:zhuǎn】
frontNode = headNode
headNode = tempNode
}
return frontNode
本文链接:http://10.21taiyang.com/Biological-SciencesScience/6445829.html
理解算理构建算法【拼音:fǎ】的研究论文 程序员是怎么学习算法的?转载请注明出处来源