领扣LintCode算法问题答案-219. 在排序链表中插入一个节点

领扣LintCode算法问题答案-219. 在排序链表中插入一个节点

目录

  • 219. 在排序链表中插入一个节点
  • 鸣谢

219. 在排序链表中插入一个节点

在链表中插入一个节点。

样例 1:

输入:head = 1->4->6->8->null, val = 5
输出:1->4->5->6->8->null

样例 2:

输入:head = 1->null, val = 2
输出:1->2->null

/**
 * Definition for ListNode
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) {
 *         val = x;
 *         next = null;
 *     }
 * }
 */

public class Solution {
     
    /**
     * @param head: The head of linked list.
     * @param val: An integer.
     * @return: The head of new linked list.
     */
    public ListNode insertNode(ListNode head, int val) {
     
        // write your code here
         if (head == null) {
     
    		return new ListNode(val);
		}
		if (val <= head.val) {
     
			ListNode node = new ListNode(val);
			node.next = head;
			return node;
		}
		ListNode node = head;
		while (node.next != null) {
     
			ListNode nextNode = node.next;
			if (val < nextNode.val) {
     
				node.next = new ListNode(val);
				node.next.next = nextNode;
				return head;
			}
			node = nextNode;
		}

		node.next = new ListNode(val);

		return head;
    }
}

原题链接点这里

鸣谢

非常感谢你愿意花时间阅读本文章,本人水平有限,如果有什么说的不对的地方,请指正。
欢迎各位留言讨论,希望小伙伴们都能每天进步一点点。

你可能感兴趣的:(算法,算法)