`
hcx2013
  • 浏览: 88763 次
社区版块
存档分类
最新评论

Reorder List

 
阅读更多

Given a singly linked list LL0L1→…→Ln-1Ln,
reorder it to: L0LnL1Ln-1L2Ln-2→…

You must do this in-place without altering the nodes' values.

For example,
Given {1,2,3,4}, reorder it to {1,4,2,3}.

 

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
public class Solution {
    public void reorderList(ListNode head) {
        if (head == null || head.next == null) {
        	return;
        }
        ListNode n1 = head;
        ListNode n2 = head;
        while (n2.next != null && n2.next.next != null) {
        	n1 = n1.next;
        	n2 = n2.next.next;
        }
        n2 = n1.next;
        n1.next = null;
        ListNode right = reverse(n2);
        merge(head, right);
    }

	private void merge(ListNode head, ListNode right) {
		// TODO Auto-generated method stub
		ListNode next = null;
		while (head.next != null) {
			next = right.next;
			right.next = head.next;
			head.next = right;
			head = right.next;
			right = next;
		}
		head.next = right;
	}

	private ListNode reverse(ListNode n2) {
		// TODO Auto-generated method stub
		ListNode pre = null;
		ListNode next = null;
		while (n2 != null) {
			next = n2.next;
			n2.next = pre;
			pre = n2;
			n2 = next;
		}
		return pre;
	}
}

 

 

 

0
1
分享到:
评论

相关推荐

    AjaxControlToolkit之ReorderList

    介绍了Ajax控件-ReorderList的使用方法:添加数据,修改数据,删除数据,以及拖动排序。除了修改数据有部分代码,其他功能皆无代码(ReorderList的界面拖动排序也无需代码),都是一次性绑定数据源控件。~~还在为网络...

    AJAXControlToolKit的ReorderList

    ASP.NET AJAX的ReorderList控件是可以实现无排序数据绑定的列表控件,从名字上就可以看出来因为它是Reorder的,也就是说能够通过和服务器端交互数据重新排序绑定的数据项。要实现重排序,用户只需简单的拖动某条记录的...

    Reorder List/Library Columns-crx插件

    语言:English (United States) 重新排序列表/库列 它是针对SharePoint用户和开发人员的工具。 该工具将有助于对列表或库列进行重新排序。 首先,登录到SharePoint...https://github.com/dipongkor/reorder-rolumns.git

    AJAX拖动列表排序示例

    2. 创建ReorderList控件:在ASP.NET页面上声明ReorderList,设置必要的属性,如TargetControlID(指定数据绑定的目标控件)和DragDropBehaviour(定义拖放行为)。 3. 数据绑定:将列表数据源绑定到ReorderList,...

    经典编程题1

    代码中定义了一个`Solution`类,其中`findMiddle`方法用于寻找链表的中间节点,`reverse_list`方法用于反转链表,`reorderList`则是主方法,完成链表的重排操作。`reorderList`中先检查链表长度,对于长度小于等于3...

    重排链表1

    在提供的 `Solution` 类中,`reorderList` 函数实现了以上步骤。首先检查链表是否为空,然后执行上述三个步骤。这个函数的时间复杂度是 O(n),因为我们需要遍历链表两次,一次找到中间节点,一次进行合并;空间...

    python-leetcode面试题解之第143题重排链表-题解.zip

    def reorderList(head): if not head or not head.next: return head mid = find_mid(head) next_to_mid = mid.next mid.next = None right = reverse_list(next_to_mid) left = head right_tail = None ...

    python-leetcode题解之143-Reorder-List

    python python_leetcode题解之143_Reorder_List

    完全手册:ASP.net Ajax电子教程

    首先介绍了ASP.NET AJAX基础知识和结构,然后介绍了ASP.NET AJAX Control Toolkit中的全部控件,如AutoComplete、PasswordStrength、CollapsiblePanel、Tabs、CascadingDropDown、ReorderList、SlideShow等,...

    python 教程 leetcode 代码模板-.Linked-List-Two-Pointers-List.md

    def reorderList(self, head: ListNode) -> None: if not head or not head.next: return # 找到链表中点 mid = self.findMid(head) # 反转后半部分链表 l2 = mid.next mid.next = None l2 = self....

    js-leetcode题解之143-reorder-list.js

    javascript js_leetcode题解之143-reorder-list.js

    完全手册ASP.NET AJAX实用开发详解 源码

    首先介绍了ASP.NET AJAX基础知识和结构,然后介绍了ASP.NET AJAX Control Toolkit中的全部控件,如AutoComplete、PasswordStrength、CollapsiblePanel、Tabs、CascadingDropDown、ReorderList、SlideShow等,...

    完全手册:ASP.net.Ajax

    首先介绍了ASP.NET AJAX基础知识和结构,然后介绍了ASP.NET AJAX Control Toolkit中的全部控件,如AutoComplete、PasswordStrength、CollapsiblePanel、Tabs、CascadingDropDown、ReorderList、SlideShow等,...

    完全手册ASP、NET AJAX实用开发详解光盘

    首先介绍了ASP.NET AJAX基础知识和结构,然后介绍了ASP.NET AJAX Control Toolkit中的全部控件,如AutoComplete、PasswordStrength、CollapsiblePanel、Tabs、CascadingDropDown、ReorderList、SlideShow等,...

    完全手册:ASP.NET AJAX实用开发详解 part3

    首先介绍了ASP.NET AJAX基础知识和结构,然后介绍了ASP.NET AJAX Control Toolkit中的全部控件,如AutoComplete、PasswordStrength、CollapsiblePanel、Tabs、CascadingDropDown、ReorderList、SlideShow等,...

    asp.net+ajax

    利用ReorderList控件实现拖拽排序;利用Rating控件实现评分功能;利用Accordion控件实现QQ样式的菜单。 第6章 注册登录。 第8章 留言本。 第9章 分页模块。 第10章 文件上传显示进度条功能。 第11章 相册模块。 第12...

    完全手册:ASP.net Ajax电子教程-part1

    首先介绍了ASP.NET AJAX基础知识和结构,然后介绍了ASP.NET AJAX Control Toolkit中的全部控件,如AutoComplete、PasswordStrength、CollapsiblePanel、Tabs、CascadingDropDown、ReorderList、SlideShow等,...

    完全手册:ASP.net Ajax电子教程-part2

    首先介绍了ASP.NET AJAX基础知识和结构,然后介绍了ASP.NET AJAX Control Toolkit中的全部控件,如AutoComplete、PasswordStrength、CollapsiblePanel、Tabs、CascadingDropDown、ReorderList、SlideShow等,...

    Leetcode题目+解析+思路+答案.pdf

    - **Reorder List**:按照特定规则重新排列链表。 - **Partition List**:将链表按值分割成两个部分。 - **Add Two Numbers**:两个非负整数相加,结果存储在链表中。 - **Copy List with Random Pointer**:...

Global site tag (gtag.js) - Google Analytics