题目描述:
题解:
可以分为三种情况:
1.输入head链表为空,创建一个head节点,val等于要插入的值,next指向自身,返回head。
2.要插入的值在输入head链表中的某两个节点之间,即存在一个节点cur,nxt=cur,插入的值在这两个节点之之间,cur.val<=insertval<=nxt.val
3.要插入的值大于当前head链表中最大值或小于链表中最小值,则应该插入的位置在head链表最大最小值之间,比如示例1,如果要插入的值是0,则应该在4和1之间。即如果在head链表中存在cur和next,cur.val>nxt.val并且insertval>=cur.val或insertval<=nxt.val。
class Solution: def insert(self, head: 'Node', insertVal: int) -> 'Node': if head==None: head = Node(insertVal) head.next = head return head cur = head nxt = cur.next while nxt!=head: if cur.val<=insertVal and nxt.val>=insertVal: break if cur.val>nxt.val and(insertVal>=cur.val or insertVal<=nxt.val): break cur = cur.next nxt = nxt.next xnode = Node(insertVal,nxt) cur.next = xnode return head