💎💎💎💎💎
更多資源鏈接,歡迎訪問作者gitee倉庫:https://gitee.com/fanggaolei/learning-notes-warehouse/tree/master
1.二叉樹節點的創建嗶哩嗶哩算法題視頻講解:Java初級算法合集
public class TreeNode { int val;
TreeNode left;
TreeNode right;
TreeNode() {}
TreeNode(int val) {this.val = val;}
TreeNode(int val, TreeNode left, TreeNode right) { this.val = val;
this.left = left;
this.right = right;
}
}? 這里我們需要理解二叉樹中會存儲3個值,分別為自己本身的val值和兩個指針,這兩個指針分別會指向兩個新的節點,或者指向為空。

先序遍歷:3 2 3 4 2 4 3
中序遍歷:3 2 4 3 4 2 3
后序遍歷:3 4 2 4 3 2 3
層序遍歷:3 2 2 3 4 4 3
public class TEST {public static void main(String[] args) {//第三層
TreeNode treeNode1=new TreeNode(3);
TreeNode treeNode2=new TreeNode(4);
TreeNode treeNode3=new TreeNode(4);
TreeNode treeNode4=new TreeNode(3);
//第二層
TreeNode treeNode5=new TreeNode(2,treeNode1,treeNode2);
TreeNode treeNode6=new TreeNode(2,treeNode3,treeNode4);
//第一層
TreeNode treeNoderoot=new TreeNode(3,treeNode5,treeNode6);
Solution solution=new Solution();
solution.isSymmetric(treeNoderoot);//中序遍歷
//solution.inOrderTraveral(treeNoderoot);//中序遍歷
//solution.postOrderTraveral(treeNoderoot);//后序遍歷
}
}
class TreeNode { int val;
TreeNode left;
TreeNode right;
TreeNode() {}
TreeNode(int val) {this.val = val;}
TreeNode(int val, TreeNode left, TreeNode right) { this.val = val;
this.left = left;
this.right = right;
}
}
}2.二叉樹的先序遍歷//二叉樹的先序遍歷
class Solution{public void isSymmetric(TreeNode node){if(node == null){return;
}
System.out.print(node.val+" ");
isSymmetric(node.left);
isSymmetric(node.right);
}3.二叉樹的中序遍歷//二叉樹中序遍歷
public static void inOrderTraveral(TreeNode node){if(node == null){return;
}
inOrderTraveral(node.left);
System.out.print(node.val+" ");
inOrderTraveral(node.right);
}4.二叉樹的后序遍歷//二叉樹后續遍歷
public static void postOrderTraveral(TreeNode node){if(node == null){return;
}
postOrderTraveral(node.left);
postOrderTraveral(node.right);
System.out.print(node.val+" ");
}5.二叉樹的層序遍歷public List>levelOrder(TreeNode root) {//邊界條件判斷
if (root == null)
return new ArrayList<>();
//隊列
Queuequeue = new LinkedList<>();
List>res = new ArrayList<>();
//根節點入隊
queue.add(root);
//如果隊列不為空就繼續循環
while (!queue.isEmpty()) {//BFS打印,levelNum表示的是每層的結點數
int levelNum = queue.size();
//subList存儲的是每層的結點值
ListsubList = new ArrayList<>();
for (int i = 0; i< levelNum; i++) {//出隊
TreeNode node = queue.poll();
subList.add(node.val);
//左右子節點如果不為空就加入到隊列中
if (node.left != null)
queue.add(node.left);
if (node.right != null)
queue.add(node.right);
}
//把每層的結點值存儲在res中,
res.add(subList);
}
return res;
}
你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧
當前名稱:Java實現二叉樹的創建與四種遍歷方式(前,中,后,層)-創新互聯
鏈接分享:http://www.yijiale78.com/article24/cdpoje.html
成都網站建設公司_創新互聯,為您提供Google、網站設計公司、面包屑導航、搜索引擎優化、網站建設、企業建站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯