go语言实现
package main import . "nc_tools" /* * type ListNode struct{ * Val int * Next *ListNode * } */ /** * * @param l1 ListNode类 * @param l2 ListNode类 * @return ListNode类 */ func mergeTwoLists( l1 *ListNode , l2 *ListNode ) *ListNode { // write code here // 其中一个为空,则返回另外一个 if l1 == nil { return l2 } if l2 == nil { return l1 } // 得到一个头节点 var head *ListNode if l1.Val > l2.Val { head = l2 l2 = l2.Next }else{ head = l1 l1 = l1.Next } // node节点主要用于引用下一个元素节点 node := head for l1 != nil || l2 != nil { // 两个都不为空,则需要比较两个链表节点大小,并把对应节点连接到node的next中 if l1 != nil && l2 != nil { if l1.Val > l2.Val { node.Next = l2 l2 = l2.Next }else{ node.Next = l1 l1 = l1.Next } node = node.Next continue } // 其中一个链表为空 if l1 != nil { node.Next = l1 l1 = nil } if l2 != nil { node.Next = l2 l2 = nil } } return head }