leetcode 21-Merge Two Sorted Lists
难度:easy
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two
lists.
思路: 1. 从今天开始进入链表(linked list)学习,因为没有找到特别系统全面的python相关资料,决定采用以做题带学的方式,通过别人的code来学习链表的各类操作。
2. 本题题意很简单,将两个已经从小到大sorted好的链表合并为一个从小到大排列的链表。
3. 新建一个链表,如果两个旧链表为None,则新链表为None. 如果旧链表不为空(至少有一个不为空),则 用next将两个链表的当前位置比较,谁的小就放谁进入新链表,当一个链表放完以后,说明另外一个链表 剩下的元素都比较大,再放进去就好。
4. A:单链表的结点是一个二元组,由两部分组成,1. 元素域(elem)保存着作为表元素的数据项(或者数据 项的关联信息)
2. 链接域next里保存同一个表里的下一个结点的标识。
B:创建一个新的linked list dummy=ListNode(i) (dummy=i)
C:在结点尾端加入一个新元素(在链表的首端,尾端,中间定位插入操作是不一样的),修改原结点的 next域,使其指向新结点, cur,next=l1, cur.next=l2
D:删除首端结点(删除首端和其他位置元素操作也是不一样的),需要将该节点指向结点的next, cur=cur.next;
E: 一般情况下的元素删除,找到要删元素所在结点的前一结点,设用变量cur指向,然后修改cur的next 域,使之指向被删结点的下一个结点:cur.next=cur.next.next