给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。(力扣的题 编号203哈)
示例 1:
输入:head = [1,2,6,3,4,5,6], val = 6
输出:[1,2,3,4,5]
示例 2:
输入:head = [], val = 1
输出:[]
示例 3:
输入:head = [7,7,7,7], val = 7
输出:[]
解法:
1.链表结构,在我们不确定链表有多少节点的情况下,我们不能用for 。所以我们可以函数递归。
2.递归判断相等,相等就吧此节点忽略。这样就完美的去掉相等的节点。
3.在力扣执行速度击败百分之百用户
class Solution {
/**
* @param ListNode $head
* @param Integer $val
* @return ListNode
*/
function removeElements($head, $val) {
if(empty($head)){//判断节点是否为空
return $head;//如果为空就返回。
}
$head->next = $this->removeElements($head->next,$val);
if($head->val == $val){//进行判断 val 和 节点val是否一直 。 如果一致就返回下面的节点。(这样就能吧重复的节点忽略掉)
return $head->next;
}
return $head;//如果没有一致就返回节点本体。
}
}
原创文章,作者:星辰,如若转载,请注明出处:https://www.z88j.com/319.html