当前位置: 面试刷题>> 列表扁平化 (经典算法题500道)


### 题目描述补充 **题目**: 列表(或数组)扁平化 给定一个嵌套的列表(或数组),其中元素可以是整数、字符串或其他列表(数组),请编写一个函数将其扁平化,即返回一个不包含任何嵌套结构的列表(数组),所有元素都是原嵌套列表中的元素,并且保持原有的顺序。 **示例输入**: ```python [1, [2, 3], [4, [5, 6]]] ``` **示例输出**: ```python [1, 2, 3, 4, 5, 6] ``` ### 示例代码 #### PHP ```php function flattenArray($arr) { $result = []; foreach ($arr as $item) { if (is_array($item)) { $result = array_merge($result, flattenArray($item)); } else { $result[] = $item; } } return $result; } // 测试 $nestedArray = [1, [2, 3], [4, [5, 6]]]; $flatArray = flattenArray($nestedArray); print_r($flatArray); ``` #### Python ```python def flatten_list(lst): result = [] for item in lst: if isinstance(item, list): result.extend(flatten_list(item)) else: result.append(item) return result # 测试 nested_list = [1, [2, 3], [4, [5, 6]]] flat_list = flatten_list(nested_list) print(flat_list) ``` #### JavaScript ```javascript function flattenArray(arr) { let result = []; arr.forEach(item => { if (Array.isArray(item)) { result = result.concat(flattenArray(item)); } else { result.push(item); } }); return result; } // 测试 const nestedArray = [1, [2, 3], [4, [5, 6]]]; const flatArray = flattenArray(nestedArray); console.log(flatArray); ``` **码小课提醒**: 在解决此类问题时,理解递归或迭代的思想非常关键。递归方法通过函数调用自身来处理嵌套结构,而迭代方法则通过循环和条件判断来逐步展开列表。此外,注意处理各种数据类型的兼容性,确保函数能够正确处理所有可能的输入情况。 码小课网站中有更多关于算法和数据结构的内容分享给大家学习,涵盖从基础到进阶的各种主题,欢迎大家访问学习。
推荐面试题