zoukankan      html  css  js  c++  java
  • 算法基础~链表~链表划分

    算法基础~链表~链表划分

    1,题意要求:小于x的放在前,大于等于x放后。
    2,例如x = 3,原链表图解:

    3,如果只在原链表上找出小x的组成“小”链,剩下的就是“大”链,但是,找出小链,不拼接的话,链表是断链状态的,

    so,需要找小 组成小链的同时,也需要找大 组成大链,即:

     4,一般,循环遍历,咱是一个结点一个结点的遍历,组建拼接,一般遍历结束,头指针的位置都到了链尾的位置,即:

     5,于是乎,咱就面临“小链、大链连接成一条链”的困境~~~

    ~解决:巧用空的头结点~用来标志第一个结点:

     7,直接上代码,分析如上:

    public class Solution {
      public:
        ListNode* partititon(ListNode* head, int x){
          ListNode less_head_node(0);
          ListNode more_head_node(0);
          ListNode* less_head = &less_head_node;
          ListNode* more_head = &more_head_node;
          while(head){
              if(head->val < x){    //构建小链
                 less_head->next = head;
                 less_head = head;
              }else{        //构建大链
                  more_head->next = head;
                  more_head = head;
              }
              head = head->next;
          }
          //小链的尾部连接大链头部
          less_head->next = more_head_node.next;
          more_head->next = NULL;
          return less_head_node.next;
        }
    }

    8,补充小知识点【.  与 -> 区别】

    . 是结构体变量,引用结构体成员
    ->  是结构体指针变量,引用结构体成员

  • 相关阅读:
    Java实现 LeetCode 740 删除与获得点数(递推 || 动态规划?打家劫舍Ⅳ)
    Python oct() 函数
    Python hex() 函数
    Python ord() 函数
    Python unichr() 函数
    Python chr() 函数
    arm,asic,dsp,fpga,mcu,soc各自的特点
    摄像头标定技术
    自主泊车技术分析
    畸变的单目摄像机标定
  • 原文地址:https://www.cnblogs.com/shan333/p/15037717.html
Copyright © 2011-2022 走看看