面試題 層級遍歷二叉樹,包含前序 中序 後序遍歷

2021-10-09 10:15:27 字數 1431 閱讀 6502

二叉樹的遍歷分為以下三種:

先序遍歷:遍歷順序規則為【根左右】

中序遍歷:遍歷順序規則為【左根右】

後序遍歷:遍歷順序規則為【左右根】

二叉樹的資料結構:

/**

* 二叉樹結構

*/private static class treenode

public treenode(int value)

} /**

* 1

* / \

* 2 3

* /\ / \

* 4 5 6 7

* * @param args

*/public static void main(string args)

/*** 前序遍歷列印二叉樹 1,2,4,5,3,6,7

* @param root

*/public static void qianxuprint(treenode root)

} /**

* 中序遍歷列印二叉樹 4,2,5,1,6,3,7

* @param root

*/public static void zhongxuprint(treenode root)

} /**

* 後續遍歷列印二叉樹 4,5,2,6,7,3,1

* @param root

*/public static void houxuprint(treenode root)

} /**

* 層級遍歷列印二叉樹 1,2,3,4,5,6,7

* @param root

*/public static void floorprintbyqueue(treenode root)

if (null != node.right)

system.out.print(node.value+",");

}} }

/*** 層級遍歷列印二叉樹 1,2,3,4,5,6,7

* 遞迴實現recursion

* @param root

*/public static void floorprintbyrecursion(treenode root)

} }public static void addlevernode(map> map, int lever, treenode node)

listlist = map.get(lever);

if (list == null) else

// 左子節點

addlevernode(map, lever + 1, node.left);

// 右子節點

addlevernode(map, lever + 1, node.right);

}

面試題 分層遍歷二叉樹

程式設計之美上的題目。問題1 給定一棵二叉樹,要求按分層遍歷該二叉樹,即從上到下按層次訪問該二叉樹 每一行將單輸出一行 每一層要求訪問的順序為從左向右,並將節點依次編號。問題2 寫乙個函式,列印二叉樹中某層次的節點 從左向右 其中根結點為第1層。include iostream include qu...

前序遍歷二叉樹

題目 給定乙個二叉樹,返回它的 前序 遍歷。示例 輸入 1,null,2,3 輸出 1,2,3 方法一 遞迴 這是最容易想到且最容易實現的演算法。definition for a binary tree node.struct treenode treenode int x val x left n...

二叉樹面試題

1.求二叉樹節點個數 可以使用遞迴解決。將問題分解為求根節點 左子樹的節點數 右節點的節點數。實現 public size t size private size t size node root 2.求頁節點個數 頁節點 左右子樹都為空的節點被稱為頁節點,使用遞迴遍歷,當碰到乙個左右子樹為空的節點...