java將list轉為樹結構,java list樹 廣度_java樹的廣度優先遍歷思路

 2023-10-02 阅读 25 评论 0

摘要:我們使用廣度優先遍歷的辦法,?來?遍歷一棵樹,我們就需要記錄下每一層的節點,從每一層的節點中去獲取下一層節點,所有我們需要有一個記錄每層節點的容器來完成這個工作,簡單點的辦法就是使用隊列,注意隊列數據的順序;創建樹的

我們使用廣度優先遍歷的辦法,?來?遍歷一棵樹,我們就需要記錄下每一層的節點,從每一層的節點中去獲取下一層節點,所有我們需要有一個記錄每層節點的容器來完成這個工作,簡單點的辦法就是使用隊列,注意隊列數據的順序;

創建樹的方法:

public static TreeNode createTree(){

TreeNode firstLeft=new TreeNode(3);

java將list轉為樹結構、TreeNode firstRighe=new TreeNode(7);

TreeNode root=new TreeNode(5,firstLeft,firstRighe);

TreeNode leftSecondL=new TreeNode(2);

TreeNode rightSecondL=new TreeNode(4);

TreeNode leftSecondR=new TreeNode(6);

java快速遍歷樹形數據、TreeNode rightSecondR=new TreeNode(8);

firstLeft.setLeftNode(leftSecondL);

firstLeft.setRightNode(rightSecondL);

firstRighe.setLeftNode(leftSecondR);

firstRighe.setRightNode(rightSecondR);

java遍歷目錄樹,return root;

}

package com.czy.tree;

import java.util.ArrayList;

import java.util.LinkedList;

java向上遞歸父節點、import java.util.List;

import java.util.Queue;

/*

* 深搜和廣搜

*/

java遞歸樹形結構,public class TreeSerch {

public static List wideSerch(TreeNode root){

Listlist=new ArrayList(); //鏈表用來存數據

Queuequeue=new LinkedList();//隊列

if(root==null){

三個list集合嵌套處理、return list;

}

queue.offer(root);//先把根節點入隊,使隊列不為空,進入循環

while(!queue.isEmpty()){

TreeNode node=queue.poll();

廣度優先遍歷相當于二叉樹的?if(node.getLeftNode()!=null)

queue.offer(node.getLeftNode());

if(node.getRightNode()!=null)

queue.offer(node.getRightNode());

list.add(node.getData());

java的arraylist的sort方法、}

return list;

}

public static void main(String[] args) {

TreeNode root=TestBstTree.createTree();//調用了自己寫的靜態方法創建一棵樹

java菜鳥教程。Listlist=wideSerch(root);

for(Integer one:list){

System.out.println(one);

}

}

java獲取list集合的長度?}

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/110808.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息