算法学习记录(七)

82 阅读1分钟

链表

问:

  1. 反转单向链表
  2. 两个有序链表求公共部分

解:

  1. 用temp变量保存当前节点的next节点,当前节点的next指向上一个节点。当前节点变量指向temp保存的next节点
    function reverseLinkedList(node) {
        let current = node
        let pre = null
        let temp = null
        while (current) {
            temp = current.next
            current.next = pre
            pre = current
            current = temp
        }
    }
    function getPublicPart(list1, list2) {
        const res = []
        let node1 = list1.head
        let node2 = list2.head
        while (node1 && node2) {
            if (node1.value === node2.value) {
                res.push(node1.value)
                node1 = node1.next;
                node2 = node2.next
            }
            if (node1.value < node2.value) {
                node1 = node1.next
            }
            if (node1 > node2.value) {
                node2 = node2.next
            }
        }
    }