JD4 4樹 輸出單層節點

2021-08-20 11:26:42 字數 1038 閱讀 5025

題目描述

對於一棵二叉樹,請設計乙個演算法,建立含有某一深度上所有結點的鍊錶。

給定二叉樹的根結點指標treenode* root,以及鍊錶上結點的深度,請返回乙個鍊錶listnode,代表該深度上所有結點的值,請按樹上從左往右的順序鏈結,保證深度不超過樹的高度,樹上結點的值為非負整數且不超過100000。

思路解析

輸出單層節點:層次遍歷(先序遍歷),當遍歷到第dep層時建立鍊錶

方法2思路:

要獲取指定深度的節點,只需在二叉樹的先序遍歷過程中加上深度值即可。

由於先序遍歷是先訪問左孩子、再訪問右孩子,所以某一層的左孩子一定先訪問到,右孩子一定後訪問到。

**:1、只要在先序遍歷函式上加上兩個引數即可:

2、當前深度;

目標深度 若當前深度和目標深度一致時,將當前節點輸出,並直接return回溯,無需再往下遞迴了!節約一定的開銷!

package jindian;

/* class listnode

}class treenode

}*/public

class treelevel else

return head.next;

}//方法2:在先序遍歷基礎,加上當前深度和目標深度這兩個引數,當前深度++直到等於目標深度,構建鍊錶

/*listnode head =new listnode(-1);

listnode cur= head;*/

public listnode gettreelevel(treenode root,int dep)

private

void preorder(treenode root,int curdep,int dep)

preorder(root.left,curdep+1,dep);//curdep++直到第dep層

preorder(root.right,curdep+1,dep);

}}

二叉樹單層節點組成鍊錶

題目描述 對於一棵二叉樹,請設計乙個演算法,建立含有某一深度上所有結點的鍊錶。給定二叉樹的根結點指標treenode root,以及鍊錶上結點的深度,請返回乙個鍊錶listnode,代表該深度上所有結點的值,請按樹上從左往右的順序鏈結,保證深度不超過樹的高度,樹上結點的值為非負整數且不超過10000...

二叉樹輸出其後繼節點

對於乙個二叉樹來講,其按中序遍歷,每個數後乙個數是這個數的後繼節點,那麼最後乙個數是沒有後繼節點的。根據中序遍歷的順序,乙個節點如果有右孩子,那麼右孩子最左邊的節點就是他的後繼節點,如果沒有右孩子,那麼這個節點是節點的父節點的左孩子就是其後繼節點,如果不是就繼續向上判斷,package zuoche...

二叉樹基本操作(輸出所有葉子節點到根節點的路徑)

功能 1 輸出二叉樹的所有葉子節點 2 輸出所有從葉子節點到根節點的路徑 3 輸出 2 中最長的一條路徑 日期 2015 11 28 include include typedef struct binodebinode,bitree void longestpath bitree t,char p...