You have n processes forming a rooted tree structure. You are given two integer arrays pid and ppid, where pid[i] is the ID of the ith process and ppid[i] is the ID of the ith process's parent process.
Each process has only one parent process but may have multiple children processes. Only one process has ppid[i] = 0, which means this process has no parent process (the root of the tree).
When a process is killed, all of its children processes will also be killed.
Given an integer kill representing the ID of a process you want to kill, return a list of the IDs of the processes that will be killed. You may return the answer in any order.
Example 1:
Input: pid = [1,3,10,5], ppid = [3,0,5,3], kill = 5
Output: [5,10]
Explanation: The processes colored in red are the processes that should be killed.
We first construct a graph \(g\) based on \(pid\) and \(ppid\), where \(g[i]\) represents all child processes of process \(i\). Then, starting from the process \(kill\), we perform depth-first search to obtain all killed processes.
The time complexity is \(O(n)\), and the space complexity is \(O(n)\). Here, \(n\) is the number of processes.