LeetCode算法题–合并两个有序链表
- 题目来源:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list/submissions/
题目要求
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
示例:
输入: 1->1->2->3->3
输出: 1->2->3
题目思路:
思路很简单,利用一个指针来判断目前元素和下一个元素值是否相等,如果相等,抛弃下一个元素,令指针的next后移。整个过程利用指针完成,不使用Head。
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode deleteDuplicates(ListNode head) {
ListNode flowNode = head;
while(flowNode != null && flowNode.next != null){
//如果判断条件只有flowNode.next != null,当FlowNode为null时,flowNode.next会报空指针异常。
if(flowNode.val == flowNode.next.val){
flowNode.next = flowNode.next.next;
}else{
flowNode = flowNode.next;
}
}
return head;
}
}
执行结果: