ListNode Review ReverseListNode

  1. Reverse Linked List

iterative: Core code

if(head == null || head.next == null)
     return head;
ListNode current =  head.next;
head.next = null;
while(current ! = null){
     ListNode temp = current.next;
     current.next = head;
     head = current;
    current = temp.next;
}
return head;

recurring : Core code

    public ListNode reverseList(ListNode head) {
         if(head == null || head.next == null)
            return head;
         ListNode second = head.next;
         head.next = null;
         ListNode res =  reverseList(second);
         second.next  = head;
         return res;
    }

  

Reverse Linked List II   

  Reverse a linked list from position m to n. Do it in-place and in one-pass.

    For example:
    Given 1->2->3->4->5->NULLm = 2 and n = 4,

    return 1->4->3->2->5->NULL.

  Note:
    Given mn satisfy the following condition:
    1 ≤ m ≤ n ≤ length of list.

two point: reverse

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
public class Solution {
    public ListNode reverseBetween(ListNode head, int m, int n) {
        if(head == null || head.next == null)
            return head;
        ListNode res = new ListNode(-1);
        res.next = head;
        ListNode pre = res;
        for(int i = 0; i < m - 1 ; i ++){
            pre = pre.next;
        }
        ListNode first = pre.next;
        ListNode second = first.next;
        for(int i = 0; i < n - m ; i++){
            first.next = second.next;
            second.next = pre.next;
            pre.next = second;
            second = first.next;
        }
        return res.next;
    }

}

  

  

时间: 2024-10-05 05:00:36

ListNode Review ReverseListNode的相关文章

单链表逆置

重写单链表逆置,熟能生巧- #include <iostream> #include <cstdlib> using namespace std; typedef struct List{ int num; struct List *next; }ListNode,*pListNode; void display(ListNode *pHead) { while(pHead) { cout<<pHead->num<<"--"; pH

Java for LeetCode 234 Palindrome Linked List

解题思路: O(1)的空间复杂度,意味着不能通过开一个List来解决问题.我们可以把List分成前后两个部分,后半部分通过指针的相互赋值进行翻转即可. JAVA实现如下: public static boolean isPalindrome(ListNode head) { if (head == null || head.next == null) return true; ListNode middle = head, fast = head; while (fast != null &&am

binary tree/tree相关问题 review

本文主要对binary tree和tree相关问题做一个review,然后一道一道解决leetcode中的相关问题. 因为是review了,所以基本概念定义什么的就不赘述.review主要包括:inorder, postorder,preorder traversal的iterative version,(recursive比较直接,先不多解释了),level order traversal以及morris traversal. 首先定义一下binary tree,这里我们follow leet

软件测试学习笔记week 7 --- Peer Review

同行评审(Peer review,在某些学术领域亦称 Refereeing),或译为同侪审查,是一种学术成果审查程序,即一位作者的学术著作或计划被同一领域的其他专家学者评审.一般学术出版单位主要以同行评审的方法来选择与筛选所投送的稿件录取与否,而学术研究资金提供机构,也广泛以同行评审的方式来决定研究是否授予资金.奖金等. 同行评审程序的主要目的是确保作者的著作水平符合一般学术与该学科领域的标准.在许多领域著作的出版或者研究奖金的颁发,如果没有以同行评审的方式来进行就可能比较会遭人质疑,甚至成为某

软件测试——Peer Review

一.什么是peer review peer review是一种通过作者的同行来确认缺陷和需要变更区域的检查方法.需要进行同行评审的特定产品在定义项目软件过程的时候被确定并且作为软件开发计划的一部分被安排的进度. 二.背景 这周三老师在课上安排了peer review,每5-6个人一个小组,自己进行分工,并对样例软件进行peer review. 三.peer review的图解及分工 Moderator (主持人) 主持人的主要职责,在评审会前负责正规技术评审计划和会前准备的检查:在评审会中负责调

【云迁移论文笔记】Cloud Migration Research:A Systematic Review

Cloud Migration Research:A Systematic Review Author Info: Pooyan Jamshidi PhD Postdoctoral Researcher Dublin City University· School of Computing Major: model-driven software architecture evolution PS: This paper is the first SLR(Systematic Literatur

开源软件Review Board

开源软件, Review Board 代码审查的. https://www.reviewboard.org/

&nbsp; &nbsp; &nbsp;review what i studied `date` - 2017-4-4

如果要在第二行即"bbbb"行的上添加一行,内容为"xiaowu",可以把参数"a"换成"i" [[email protected] shell]# sed '/b/i\xiaowu' file  aaaa xiaowu bbbb cccc dddd [[email protected] shell]# sed '/bbbb/a\xiaowu' file  aaaa bbbb xiaowu cccc bbbb xiaowu d

(第十三周)Final Review会议

项目名:食物链教学工具 组名:奋斗吧兄弟 组长:黄兴 组员:李俞寰.杜桥.栾骄阳.王东涵 Final Review会议 时间:2016.12.2   13:00--15:00 地点:冬华楼一楼大厅 会议内容: 食物链教学工具Final Review结果 设想和目标 1.我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 本软件主要是用来辅助教师课堂讲授食物链相关知识.定义的很清楚.典型用户是教师,典型场景是课堂. 2.是否有充足的时间来做计划? 有充足的时间来做计