/**
* @description: 層次遍歷的三種列印方式
* 1.從上到下遍歷
* 2.從下到上遍歷
* 3.從上到下zigzag遍歷
* @date: 2021/7/9 3:05
* @author: fuguowen
* @return
* @throws
*/public class solution014
treenode(int val)
treenode(int val, treenode left, treenode right)
}public static void main(string args)
}//使用雙端佇列實現二叉樹的層次遍歷
//定義變數size:記錄當前層的元素個數
//層次遍歷1:從上到下列印
public static list> levelorder(treenode root)
while (!queue.isempty())
if(poll.right!=null)
}//尾插法
list.add(levellist);
}return list;
}//層次遍歷2:從下到上遍歷
public static list> levelorderbottom(treenode root)
while (!queue.isempty())
if(poll.right!=null)
}//頭插法
list.add(0,levellist);
}return list;
}//層次遍歷3:zigzag列印
public static list> zigzaglevelorder(treenode root)
while (!queue.isempty())
if(poll.right!=null)
}if(list.size()%2==1)
//尾插法
list.add(levellist);
}return list;
}}
類似的題目:輸出二叉樹的右檢視
/**
* @description: 二叉樹的右檢視的列印
* 1
* 2 3
* 4 5 6 7
* @date: 2021/7/13 21:47
* @author: fuguowen
* @return
* @throws
*/public static void main(string args)
/*** @description: 二叉樹的右檢視
* @date: 2021/7/14 10:24
* @author: fuguowen
* @return
* @throws
*/public static listgettreerightview(treenode root)
queue.add(root);
while (!queue.isempty())
if (peek.right != null)
if(i==size-1)}}
return ans;
}//樹結構的定義
static class treenode
}
二叉樹三種遍歷方式
三種遍歷方式是按照根節點的訪問順序來定義的 1 前序遍歷 先訪問根結點 然後遍歷左子樹,最後遍歷右子樹 並且,在遍歷左 右子樹時,仍然先訪問根結點,然後遍歷左子樹,最後遍歷右子樹。根左右 2 中序遍歷 先遍歷左子樹 然後訪問根結點,最後遍歷右子樹 並且,在遍歷左 右子樹時,仍然先遍歷左子樹,然後訪問...
重建二叉樹 遍歷二叉樹的三種方式
輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。示例 前序遍歷 preorder 3,9,20,15,7 中序遍歷 inorder 9,3,15,20,7 返回如下的二叉樹 3 9 20 15 7限制 0 節點個數 5000 這個題的解法...
二叉樹的三種遍歷方式總結
最近學了二叉樹的三種遍歷方式,即前序遍歷,中序遍歷,後序遍歷三種,仔細思索後,在此簡單總結一下。一.二叉樹示意圖 假設有一顆二叉樹如下 二.遍歷分析 每一顆二叉樹由根節點,左子樹,右子樹三個部分組成,規定先遍歷左子樹,再遍歷右子樹,這樣一來就有了三種遍歷方式,按照遍歷根節點的先後順序來劃分,根 左 ...