鍊錶逆置 扁平化 深度遍歷 遞迴演算法

2021-10-04 10:17:30 字數 1075 閱讀 2630

遞迴演算法主要有三個步驟:

找到遞迴出口,整個遞迴的終止條件

返回上一級的內容

本級遞迴該做什麼

1、遍歷二叉樹,遞迴與非遞迴實現

遞迴實現:

function

deepsearch1

(root, target)

console.

log(

deepsearch1

(a,'a'))

// true

非遞迴實現:

function

deepsearch2

(root, target)

return

false

}console.

log(

deepsearch2

(a,'c'))

//true

2、陣列扁平化,物件扁平化?

陣列扁平化:

var arr =[1

,[2,

3],[

2,3,

[4,5

,6]]

];var newarr =

;function

fn(arr)

else})

return newarr

}console.

log(

fn(arr)

)//[1, 2, 3, 2, 3, 4, 5, 6]

物件扁平化:

var newobj =

function

fn(obj)

else

}return newobj

}console.

log(

fn(obj)

)

3、鍊錶反轉

function

turnback

(root)

else

}console.

log(

turnback

(a))

扁平化多級雙向鍊錶

題目描述 多級雙向鍊錶中,除了指向下乙個節點和前乙個節點指標之外,它還有乙個子鍊錶指標,可能指向單獨的雙向鍊錶。這些子列表也可能會有乙個或多個自己的子項,依此類推,生成多級資料結構,如下面的示例所示。給你位於列表第一級的頭節點,請你扁平化列表,使所有結點出現在單級雙鏈表中。示例 1 輸入 head ...

扁平化多級雙向鍊錶

您將獲得乙個雙向鍊錶,除了下乙個和前乙個指標之外,它還有乙個子指標,可能指向單獨的雙向鍊錶。這些子列表可能有乙個或多個自己的子項,依此類推,生成多級資料結構,如下面的示例所示。扁平化列表,使所有結點出現在單級雙鏈表中。您將獲得列表第一級的頭部。示例 輸入 1 2 3 4 5 6 null 7 8 9...

430 扁平化多級雙向鍊錶

題目 多級雙向鍊錶中,除了指向下乙個節點和前乙個節點指標之外,它還有乙個子鍊錶指標,可能指向單獨的雙向鍊錶。這些子列表也可能會有乙個或多個自己的子項,依此類推,生成多級資料結構,如下面的示例所示。給你位於列表第一級的頭節點,請你扁平化列表,使所有結點出現在單級雙鏈表中。示例 1 輸入 head 1,...