题解 | #14.链表的奇偶重排#

删除有序链表中重复的元素-I

http://www.nowcoder.com/practice/c087914fae584da886a0091e877f2c79

奇偶链表分别放,最后在合并

引入没用的结点充当头

注意:

  1. 20行、21行的oddList.next = null ; evenList.next=null必须要写,因为他们的next不为空
function oddEvenList( head ) {
  if(head==null || head.next==null)
    return head;
  
  let oddList = {}, savedOddList = oddList;;//奇数链表
  let evenList = {}, savedEvenList = evenList;;//偶数链表
  
  let flag = true;//true表示奇数个
  while(head != null){
    if(flag){
      oddList.next = head;
      oddList = oddList.next;
    }else{
      evenList.next = head;
      evenList = evenList.next;
    }
    head = head.next;
    flag = !flag;
  }
  oddList.next = null;
  evenList.next = null;//!!!!
  
  oddList.next = savedEvenList.next;
  return savedOddList.next;
}
module.exports = {
    oddEvenList : oddEvenList
};
全部评论

相关推荐

06-08 22:25
门头沟学院 Java
从零开始的转码生活:这hr不会打开手机不分青红皂白给所有人群发这句话,过一会再给所有人再发一遍,这肯定会有重复的,不管,再过一会再发一遍
点赞 评论 收藏
分享
是每个人事都这样与找工作的人这样沟通吗?正常询问不可以吗
据说名字越长别人越关注你的昵称我觉得我要被关注了:excal 我还真不会
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务