708. Insert into a Sorted Circular Linked List
2022/4/9 6:19:35
本文主要是介绍708. Insert into a Sorted Circular Linked List,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
We use two points to point to two successive nodes, we call them "pre" and "cur"
We need to consider 3 situation need to be considered:
1. the inserted node is between two nodes values -> pre<=insert && insert<=cur
2. the inserted node is larger than all nodes, we need to find the edge of the circle where the pre is larger then cur -> pre>cur && insert>pre
3. the inserted node is smaller than all nodes, we need to find the edge of the circle where the pre is larger then cur -> pre>cur && insert<cur
class Solution { public Node insert(Node head, int insertVal) { if(head==null){ Node insert = new Node(insertVal); insert.next = insert; return insert; } Node insert = new Node(insertVal); Node pre = head, cur = head.next; while(cur!=head){ if(pre.val<=insertVal&&insertVal<=cur.val ||pre.val>cur.val&& insertVal<cur.val ||pre.val>cur.val&& insertVal>pre.val){ insertNode(pre, cur, insert); return head; } cur=cur.next; pre=pre.next; } insertNode(pre, cur, insert); return head; } private void insertNode(Node pre, Node cur, Node insert){ pre.next = insert; insert.next = cur; } }
Or the following codes are more clear and simple:
class Solution { public Node insert(Node head, int insertVal) { Node newNode = new Node(insertVal); if(head==null){ newNode.next = newNode; return newNode; } Node cur = head.next; Node prev = head; while(cur!= head){ if(prev.val <= insertVal && insertVal<= cur.val){ break; } if( prev.val > cur.val && insertVal > prev.val ){ break; } if( prev.val > cur.val && insertVal < cur.val){ break; } prev = cur; cur=cur.next; } prev.next = newNode; newNode.next = cur; return head; } }
这篇关于708. Insert into a Sorted Circular Linked List的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-03微信支付提示下单账户与支付账户不一致-icode9专业技术文章分享
- 2024-07-03微信支付提示订单号重复-icode9专业技术文章分享
- 2024-07-02微服务启动nacos注册上去了,但是一直没有收到请求-icode9专业技术文章分享
- 2024-07-02如何检查文件的编码格式-icode9专业技术文章分享
- 2024-07-02sublime 更改编码格式-icode9专业技术文章分享
- 2024-06-30uniAPP 实现全屏左右滚动滚动的效果-icode9专业技术文章分享
- 2024-06-30如何在本地使用授权或插件-icode9专业技术文章分享
- 2024-06-30伪静态规则配置方法汇总-icode9专业技术文章分享
- 2024-06-29易优CMS安装常见问题汇总-icode9专业技术文章分享
- 2024-06-28易优新手必读安装教程-icode9专业技术文章分享