diff --git a/src/main/java/leetcode/editor/cn/OddEvenLinkedList.java b/src/main/java/leetcode/editor/cn/OddEvenLinkedList.java new file mode 100644 index 0000000..5c15336 --- /dev/null +++ b/src/main/java/leetcode/editor/cn/OddEvenLinkedList.java @@ -0,0 +1,67 @@ +//给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。 +// +// 请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。 +// +// 示例 1: +// +// 输入: 1->2->3->4->5->NULL +//输出: 1->3->5->2->4->NULL +// +// +// 示例 2: +// +// 输入: 2->1->3->5->6->4->7->NULL +//输出: 2->3->6->7->1->5->4->NULL +// +// 说明: +// +// +// 应当保持奇数节点和偶数节点的相对顺序。 +// 链表的第一个节点视为奇数节点,第二个节点视为偶数节点,以此类推。 +// +// Related Topics 链表 +// 👍 428 👎 0 + +package leetcode.editor.cn; + +import com.code.leet.entiy.ListNode; + +//328:奇偶链表 +public class OddEvenLinkedList{ + public static void main(String[] args) { + //测试代码 + Solution solution = new OddEvenLinkedList().new Solution(); + } + //力扣代码 + //leetcode submit region begin(Prohibit modification and deletion) +/** + * 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 oddEvenList(ListNode head) { + if (head == null || head.next == null || head.next.next == null) { + return head; + } + ListNode odd = head; + ListNode even = head.next; + ListNode evenTemp = even; + while (even != null && even.next != null) { + odd.next = even.next; + odd = odd.next; + even.next = odd.next; + even = even.next; + } + odd.next = evenTemp; + return head; + } +} +//leetcode submit region end(Prohibit modification and deletion) + +} \ No newline at end of file diff --git a/src/main/java/leetcode/editor/cn/OddEvenLinkedList.md b/src/main/java/leetcode/editor/cn/OddEvenLinkedList.md new file mode 100644 index 0000000..2ffbb38 --- /dev/null +++ b/src/main/java/leetcode/editor/cn/OddEvenLinkedList.md @@ -0,0 +1,22 @@ +
给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。
+ +请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。
+ +示例 1:
+ +输入: 1->2->3->4->5->NULL +输出: 1->3->5->2->4->NULL ++ +
示例 2:
+ +输入: 2->1->3->5->6->4->7->NULL +输出: 2->3->6->7->1->5->4->NULL+ +
说明:
+ +