当前位置: 首页 > news >正文

网站搭建的流程51源码网

网站搭建的流程,51源码网,网站还没有建好可以备案吗,网络营销有哪些你不会永远顺遂,更不会一直年轻,你太安静了,是时候出发了 —— 24.12.2 206. 反转链表 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1,2,3,4,5] 输出&…

你不会永远顺遂,更不会一直年轻,你太安静了,是时候出发了

                                                                                        —— 24.12.2

206. 反转链表

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。

示例 1:

输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]

示例 2:

输入:head = [1,2]
输出:[2,1]

示例 3:

输入:head = []
输出:[]

方法一 双指针迭代

定义两个指针pre、temp,pre指针指向null,然后将给出的链表从头节点head进行遍历,先将temp指针指向head.next节点,将遇到的节点head的next指向置为pre指针:head.next = pre,(pre指针指向空值,第一次迭代则将原链表最后一个元素作为翻转后的链表的第一个元素),然后再将head指针的指向修改回先前存储的temp指针处,将整个原链表遍历完成,则对链表翻转完成


Java实现

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode reverseList(ListNode head) {ListNode pre = null;while(head != null) {ListNode tmp = head.next; // 暂存后继节点 head.nexthead.next = pre;          // 修改 next 引用指向pre = head;               // pre 暂存 headhead = tmp;               // head 访问下一节点}return pre;}
}


Python实现

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def reverseList(self, head: Optional[ListNode]) -> Optional[ListNode]:cur, pre = head, Nonewhile head:# 1.将头结点的下一个节点暂存在temp中temp = cur.next# 2.头结点的下一个节点存入pre指针中cur.next = pre# 3.pre指针指向头结点,即pre指针永远指向新链表添加节点的位置,而新节点一直随着头结点更新而更新pre = cur# 4.将头结点指向一开始存入的下一个节点,起到遍历的作用cur = temp# 返回构造的翻转后的新链表return pre


方法二 递归

考虑使用递归法遍历链表,当越过尾节点后终止递归,在回溯时修改各节点的next引用指向。

递归函数:recur(cur,pre)

1.终止条件:当 cur 为空,则返回尾节点pre(即反转链表的头节点)

2.递归后继节点,记录返回值(即反转链表的头节点),为res

3.修改当前节点 cur 引用指向前驱节点 pre;

4.返回反转链表的头节点 res

reverseList(head)函数:

调用并返回recur(head,null)。

传入null是因为反转链表后,head节点指向 null;


Java实现

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode reverseList(ListNode head) {return recur(head, null);    // 调用递归并返回}private ListNode recur(ListNode cur, ListNode pre) {if (cur == null){return pre; // 终止条件}ListNode res = recur(cur.next, cur);  // 递归后继节点cur.next = pre;              // 修改节点引用指向return res;                  // 返回反转链表的头节点}
}


Python实现 

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def reverseList(self, head: ListNode) -> ListNode:def recur(cur, pre):if not cur: return pre     # 终止条件res = recur(cur.next, cur) # 递归后继节点cur.next = pre             # 修改节点引用指向return res                 # 返回反转链表的头节点return recur(head, None)       # 调用递归并返回

http://www.yayakq.cn/news/74206/

相关文章:

  • dw如何在网站做弹窗无锡祥搜做网站推广
  • 响应式设计网站案例wordpress加入pdf
  • 做影视网站挣钱吗钢管网站建设
  • 做推广用的网站学建设网站
  • 临沂网站建设兼职网页排版设计模板
  • 树莓派做网站服务器西安大雁塔的来历
  • 安丘网站建设什么程序做教育网站好
  • 做网站 技术网站网页切换怎么做的
  • 网站建设摊销大连建设工程信息网专家库
  • 北滘禅城网站建设.net开发微信网站
  • 付费小说网站建设做装修工程找什么网站接单
  • 如何做招聘网站统计表网站开发设计图片
  • 企业网站建设代理公司福州百度快速优化排名
  • 潍坊建设局官方网站上海网站定制公司
  • 网站系统方案设计外部调用wordpress函数
  • 装饰公司网站设计网站开发网页加载很慢怎么办
  • 小型门户网站建设硬件配置wordpress段落间距
  • 动易网站管理壹佰云建站
  • 江苏连云港做网站企业网站建设费如何列支
  • 深圳龙华网站开发wordpress忘记密码
  • 我想注册一个网站怎么注册手机开发者选项是干嘛用的
  • 大连大型网站制作公司东莞做网站公司有哪些
  • 广州网站开发设计公司it外包工作怎么样
  • 旅游网站建设前的市场分析微网站 建设方案
  • 做网站公司不负责任怎么办山东青岛最新情况
  • 龙华网站建设的基本步骤一个网站的首页包括什么
  • 排名好的成都网站建设linux中下载wordpress
  • asp网站上传wordpress给幻灯片添加图片
  • 网站开发员需要什么素质网站制作公司网站源码
  • 相亲网站界面设计洪梅镇做网站