反转嵌套数组列表Javascript

反转嵌套数组列表Javascript,javascript,arrays,object,properties,reverse,Javascript,Arrays,Object,Properties,Reverse,我希望它将列表从下到上颠倒过来。 我使用了I--的循环,但即使使用内置的Reverse()函数,也无法使其工作 规则是: var list = { value: 1, next: { value: 2, next: { value: 3, next: null } } }; var list = { value: 3, next: {

我希望它将列表从下到上颠倒过来。 我使用了I--的循环,但即使使用内置的Reverse()函数,也无法使其工作

规则是:

var list = {
   value: 1,
      next: {
         value: 2,
         next: {
            value: 3,
            next: null     
         }
      }
};
var list = {
   value: 3,
   next: {
     value: 2,
     next: {
       value: 1,
       next: null
     }
   }
};
function reverseList(list) {
    // return reversedList;
}

Arguments: { value: 1, next: { value: 2, next: { value: 3, next: null } } };
Returns: { value: 3, next: { value: 2, next: { value: 1, next: null } } };

Arguments: { value: "a", next: { value: "b", next: { value: "c", next: null } } };
Returns: { value: "c", next: { value: "b", next: { value: "a", next: null } } };
  • 不能使用内置的reverse()函数
  • null是不存在的对象,如果需要,可以使用空对象
  • 函数应该能够反转任何类型的值列表
  • 必须至少使用一个数组来解决此问题
  • 原件:

    var list = {
       value: 1,
          next: {
             value: 2,
             next: {
                value: 3,
                next: null     
             }
          }
    };
    
    var list = {
       value: 3,
       next: {
         value: 2,
         next: {
           value: 1,
           next: null
         }
       }
    };
    
    function reverseList(list) {
        // return reversedList;
    }
    
    Arguments: { value: 1, next: { value: 2, next: { value: 3, next: null } } };
    Returns: { value: 3, next: { value: 2, next: { value: 1, next: null } } };
    
    Arguments: { value: "a", next: { value: "b", next: { value: "c", next: null } } };
    Returns: { value: "c", next: { value: "b", next: { value: "a", next: null } } };
    
    将其反转为如下所示:

    var list = {
       value: 1,
          next: {
             value: 2,
             next: {
                value: 3,
                next: null     
             }
          }
    };
    
    var list = {
       value: 3,
       next: {
         value: 2,
         next: {
           value: 1,
           next: null
         }
       }
    };
    
    function reverseList(list) {
        // return reversedList;
    }
    
    Arguments: { value: 1, next: { value: 2, next: { value: 3, next: null } } };
    Returns: { value: 3, next: { value: 2, next: { value: 1, next: null } } };
    
    Arguments: { value: "a", next: { value: "b", next: { value: "c", next: null } } };
    Returns: { value: "c", next: { value: "b", next: { value: "a", next: null } } };
    
    示例测试用例:

    var list = {
       value: 1,
          next: {
             value: 2,
             next: {
                value: 3,
                next: null     
             }
          }
    };
    
    var list = {
       value: 3,
       next: {
         value: 2,
         next: {
           value: 1,
           next: null
         }
       }
    };
    
    function reverseList(list) {
        // return reversedList;
    }
    
    Arguments: { value: 1, next: { value: 2, next: { value: 3, next: null } } };
    Returns: { value: 3, next: { value: 2, next: { value: 1, next: null } } };
    
    Arguments: { value: "a", next: { value: "b", next: { value: "c", next: null } } };
    Returns: { value: "c", next: { value: "b", next: { value: "a", next: null } } };
    

    没有数组,因此无法内置
    反向
    函数。还搜索了SO上的反向链表,我在代码段中引用了它

    var reverseLinkedList=函数(linkedlist){
    var节点=linkedlist;
    var-previous=null;
    while(节点){
    //保存下一个,否则将丢失它!!!
    var save=node.next;
    //反向指针
    node.next=previous;
    //当前节点之前的增量
    上一个=节点;
    //将节点递增到下一个节点或在列表末尾为null
    节点=保存;
    }
    返回上一个;//更改列表头!!!
    }
    变量列表={
    价值:1,
    下一步:{
    价值:2,
    下一步:{
    价值:3,
    下一个:空
    }
    }
    };
    var linkedlist=reverseLinkedList(列表);
    
    log(JSON.stringify(linkedlist))幸运的是,你不能使用
    反转
    。。。由于该数据中绝对没有数组,因此称之为反向链接列表,这只是一个编码面试问题,不必在现实生活中使用。如果这在您编写的某些代码中是一个真正的问题,则说明您使用了错误的数据结构。如果你想在编码面试中获得帮助,在这里实现算法()谢谢@KyleDePace,是的,这是我要解决的问题。你认为这个问题容易解决吗?可能使用一个或两个函数?
    反转嵌套数组列表Javascript
    ,正如Jaromanda已经说过的,在该数据结构中没有任何数组。那是一个链表。您从哪里获得术语
    嵌套数组列表
    <代码>4。您必须至少使用一个数组来解决此问题。
    为什么?这是不必要的开销。“这是我要解决的问题。”-然后是面试问题或学校学习任务。不管怎样,这都是你要研究的任务。我建议你先读一下Object.keys()谢谢Sandeep!